HALCONにはモフォロジー処理用のオペレータが非常に多く用意されています。特に領域の膨張や縮小といった処理は、一般的には処理時間が多大にかかってしまいますが、HALCONでは領域の定義を工夫することにより処理速度の大幅な高速化が可能です。
ここでは非常に有用なモフォロジー処理の中でも、オープニングという操作を用いた事例を紹介します。オープニングとは、一旦領域を縮小してから同じ分だけ膨張して元に戻す操作のことです。HALCONでは円状に縮小させるか、矩形状に縮小させるかなど、縮小させる形状もいくつか用意しています。この処理によって、縮小半径(または矩形の辺のそれぞれの長さ)以下の領域を除去することができます。
左は、良品と不良品が混ざり合った錠剤の画像です。良品は真円状のものに小さな欠けがあり、欠けのない真円や半円、矩形状のものは全て不良品になります。
オープニング処理を用いてこの画像中の良品と不良品を区別して判定する処理を行います。
初めに錠剤領域を抽出するために、単純な2値化処理を行います。ここでは左図の赤色の領域を抽出しています。
次に、真円の半径よりは小さく、欠けがある良品の錠剤が除去されるような大きさの半径でオープニング処理を行います。この処理によって、左のように真円以外の領域は除去されます。
2値化で得た領域からオープニング処理で抽出した真円領域を除去します。これによって、左のように良品と大きく壊れている錠剤の領域が抽出されます。
次に、良品の錠剤が残る大きさで、かつ半円や矩形状の不良品の錠剤は除去されるような大きさの半径でオープニング処理を行います。この処理によって、左のように良品の領域のみが抽出できます。
以上により、良品と不良品の錠剤を左のように区別して判定することができます。