現在地 >> メニュー >> サンプルコード::OpenCV >> モルフォロジー演算

問題


以下の画像を読み込んで、モルフォロジー演算によって、エッジを検出せよ。

画像

その他条件:
「モルフォロジーグラジエント」で検出する。→ CV_MOP_GRADIENTを指定


答え


#include <cv.h>
#include <highgui.h>
#include <iostream>

using namespace std;

int main( int argc, char **argv)
{
IplImage *imgA = cvLoadImage( "test3.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
if(imgA ==NULL)
{
cout<<"Can't Load Image ." << endl;
std::exit(0);
}



IplImage *tmp = cvCloneImage(imgA);
cvMorphologyEx (imgA, imgA, tmp, NULL, CV_MOP_GRADIENT, 1);



cvNamedWindow("window",CV_WINDOW_AUTOSIZE);
cvShowImage("window",imgA);

cvWaitKey(0); // 0秒待つ => ずっと入力待ち


cvReleaseImage( &imgA );

cvDestroyWindow("window");

return 0;
}

メモ


「モルフォロジーグラジエント」は、(膨張画像 - 収縮画像)でエッジ検出。


cvMorphologyEx()関数
http://opencv.jp/opencv/document/opencvref_cv_morp...
※今回第4引数はNULLとした。(独自のelementがほしいときに指定する)


モルフォロジー演算
http://wwwdoi.elec.nara-k.ac.jp/html/doilab/lab98/...

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます