最終更新: mikk_ni3_92 2007年11月21日(水) 14:51:45履歴
現在地 >> メニュー >> サンプルコード::OpenCV >> モルフォロジー演算
#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/...
#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/...