最終更新: mikk_ni3_92 2008年05月24日(土) 16:39:48履歴
現在地 >> メニュー >> サンプルコード::OpenCV >> 画像の膨張と収縮
#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;
}
#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;
}