情報詳細Q:画像の収縮と膨張をしようと思いましたが、方法が良く分かりません。モフォロジーの中のopeningとclosingで出来るようですが、概念的に分かりません。膨張と収縮を行う際のStructElementsの設定方法を教えてください。A:サンプルプログラムでは収縮の方法について3パターン紹介しています。1. opening_circle2. erosion_circle3. openingこの順序でプログラムしました。表示している結果はフィルタ前後の差分のみです。openingとerosionの違いがお分かり頂けると思います。erosion_circleは領域の境界にそって円をのせ、その部分を領域から取り除くといったイメージです。円を使うと境界から一定距離だけ収縮します。縦長の矩形を使うと、縦方向には大きく、横方向には小さく収縮します。これに対してopening_circleは、領域に円を重ねていき、円の内部に隙間がある場合にその部分を領域から取り除きます。従って、三角形の角のみがopening_circleにより取り除かれました。openingの場合は円ではなく任意の形状を扱う事ができます。形状の指定には領域を使いますが、その生成の例としてgen_rectangle2を使いました。Phiを変えると7つの円部分の変化が良くわかり、ご理解を深めるのに役立つと思います。もう少しモフォロジーについて整理しましょう。正確にはモフォロジーは領域モフォロジーとグレイモフォロジーの2つに分けることができます。ここでは領域のモフォロジーについて説明します。重ねあわせた画像で画素間のANDをとるのが侵食(erosion)、ORをとるのが膨張(dilation)です。これらの組み合わせによって、画像中の対象物の形状に関するいろいろな処理が可能となります。侵食の次に膨張を行うのがopeningであり、細かい雑音を除去することができます。膨張の次に侵食を行うのが、closingであり、物体中の穴を埋めることができます。侵食・膨張処理の拡張であり、これらは一般に2値画像に対して行われます。HALCONではそれぞれに対して円形、長方形、そして任意の形状で処理を行うことができます。初めはopeningとclosingの概念がわかりにくいかもしれません。openingは「もし切れるならきれろ」、closingは「もしつながるならつなげろ」と覚えると良いかもしれません。関連オペレーターerosion_circleopeningopening_circleファイルサンプルプログラムはmorphology.zipをダウンロードしてください。morphology.devopening_circle、erosion_circle、openingを使ったサンプルプログラムmorphology.txtopening_circle、erosion_circle、openingを使ったサンプルプログラム(テキスト形式)morphology2.bmpmorphology.devで使用する画像添付ファイルmorphology.zipタイトルモフォロジーの概念[領域(Region)]URL 名000006048公開状況公開済み検証状況公開済み