void sabun(IplImage * src_img)
{
// モロフォロジー演算用
IplImage *dst_img_dilate;
IplImage *dst_img_erode;
IplImage *dst_img_opening;
IplImage *tmp_img;
IplConvKernel *element;
dst_img_dilate = cvCloneImage(src_img); //拡大
dst_img_erode = cvCloneImage(src_img); //縮小
dst_img_opening = cvCloneImage(src_img); //差分
dst_img_subunn = cvCloneImage(src_img);
tmp_img = cvCloneImage(src_img);
//構造要素を生成する
element = cvCreateStructuringElementEx(9, 9, 4, 4, CV_SHAPE_RECT, NULL);
//各種のモルフォロジー演算を実行する
cvMorphologyEx(src_img, dst_img_opening, tmp_img, element, CV_MOP_OPEN, 1);
cvErode(dst_img_opening, dst_img_erode, element, 5); //縮小を5回繰り返す
cvDilate(dst_img_erode, dst_img_dilate, element, 8); //拡大を8回繰り返す
cvSub(dst_img_opening, dst_img_dilate, dst_img_subunn); //差分を求める
// 画像を表示させる
//cvShowImage(windowNameSub, dst_img_subunn);
// メモリを解放する
cvReleaseImage(&dst_img_dilate);
cvReleaseImage(&dst_img_erode);
cvReleaseImage(&dst_img_opening);
Ellipse(dst_img_subunn);
cvReleaseImage(&dst_img_subunn);
cvReleaseImage(&tmp_img);
}
最終更新:2010年01月29日 14:24