OpenGL de プログラミング - モルフォロジー演算
現在地
>>
メニュー
>>
サンプルコード::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/...