現在地 >> メニュー >> サンプルコード::OpenCV >> 画像の膨張と収縮

問題


画像を読み込んで、以下のキー操作で画像の膨張、収縮を行え。

png画像

キー操作:
  • 「e」:Erode処理
  • 「d」:Dilate処理
  • 「r」:リセット(元の画像にする)
  • 「q」:終了

答え


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

using namespace std;

int main( int argc, char **argv)
{

IplImage *imgA = cvLoadImage( "fai.png", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
if(imgA ==NULL)
{
cout<<"Can't Load Image ." << endl;
std::exit(0);
}

IplImage *copy = cvCloneImage(imgA);

cvNamedWindow("window",CV_WINDOW_AUTOSIZE);

char key;
while(1)
{

cvShowImage("window",copy);
key = (char)cvWaitKey(0);
if(key == 'q')
{
break;
}else
{
switch(key)
{
case'e':
cvErode(copy, copy); //収縮処理
break;

case'd': //膨張処理
cvDilate(copy,copy);
break;

case'r':
cvCopy(imgA,copy);
break;
}
}

}

cvReleaseImage( &imgA ); imgA = NULL;
cvReleaseImage( & copy ); copy=NULL;

cvDestroyAllWindows();

return 0;
}

メモ


cvDilate()やcvErode()関数は、第3、第4引数があるが、
何も指定しなければ、3×3の範囲で1回だけ処理を行う。

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






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


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

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