2012年10月17日水曜日

OpenCVの膨張縮小って4近傍?8近傍?


膨張縮小を行う関数dilate,erodeに関して。

結論から先に言うと、膨張縮小の窓サイズは自由に変更できるが、標準では8近傍になっている。



void dilate(const Mat& srcMat& dst, const Mat& element, Point anchor=Point(-1, -1), int iterations=1, int borderType=BORDER_CONSTANT, const Scalar& borderValue=morphologyDefaultBorderValue())
  • src            入力画像
  • dst             src と同じサイズ,同じ型の出力画像
  • element      膨張用構造要素.element=Mat()の場合, 3×3の矩形構造要素
  • anchor       構造要素内のアンカー位置,デフォルト値 (-1,-1) は,アンカーが構造要素の中心
  • iterations    膨張が行われる回数
  • borderType  ピクセル外挿手法.
  • borderValue 定数境界モードで利用されるピクセル値

このelementが膨張縮小時の窓サイズで、3×3サイズで、標準で8近傍になっています。


cv::Mat element4 = (cv::Mat_<uchar>(3,3)<< 0,1,0,1,1,1,0,1,0);
cv::dilate(src_img, dst_img, element4, cv::Point(-1,-1), 1);

のようにしてあげれば4近傍になる。


0 件のコメント:

コメントを投稿