現在地 >> メニュー >> OpenCV >> IplImage編07 >> IplImage編07::まとめ2

問題1

画像を読み込んでsobel オペレータを適用せよ。

答え

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

#pragma comment(lib,"cv200.lib")
#pragma comment(lib,"cxcore200.lib")
#pragma comment(lib,"highgui200.lib")

const char *filename = "testfortex.png";

int main()
{
	IplImage *imgA = cvLoadImage(filename,0);
	if(imgA ==NULL )
	{
		std::cerr << "Can't load image\n";
		return -1;
	}

	//深度16ビットの画像メモリ確保
	IplImage *imgA_16 = cvCreateImage(cvGetSize(imgA),IPL_DEPTH_16S,1);

	cvSobel(imgA,imgA_16,2,0);//ソーベル(x:2次,y:0次)

	cvConvertScaleAbs(imgA_16,imgA);//表示用に変換

	cvNamedWindow("cvsobel");
	cvShowImage("cvsobel",imgA);
	
	cvWaitKey();
	
	cvReleaseImage(&imgA);
	cvReleaseImage(&imgA_16);
	cvDestroyAllWindows();

	return 0;
}

問題2

画像を読み込んで、Scharrオペレータを適用せよ。

答え

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

#pragma comment(lib,"cv200.lib")
#pragma comment(lib,"cxcore200.lib")
#pragma comment(lib,"highgui200.lib")

const char *filename = "testfortex.png";

int main()
{
	IplImage *imgA = cvLoadImage(filename,0);
	if(imgA ==NULL )
	{
		std::cerr << "Can't load image\n";
		return -1;
	}

	//深度16ビットの画像メモリ確保
	IplImage *imgA_16 = cvCreateImage(cvGetSize(imgA),IPL_DEPTH_16S,1);

	cvSobel(imgA,imgA_16,0,1,CV_SCHARR);//Scharr(dx+dy=1,dx>=0 ,dy>=0)

	cvConvertScaleAbs(imgA_16,imgA);//表示用に変換

	cvNamedWindow("cvsobel");
	cvShowImage("cvsobel",imgA);
	
	cvWaitKey();
	
	cvReleaseImage(&imgA);
	cvReleaseImage(&imgA_16);
	cvDestroyAllWindows();

	return 0;
}

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






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


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

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