×
現在地 >> メニュー >> OpenCV >> sequence編03 >> sequence編03::まとめ

問題

画像を読み込んで、輪郭線を検出し描画せよ。

答え

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

int main()
{
	//画像を読み込んで前処理をする
	IplImage *imgA = cvLoadImage("6.png");
	if(imgA == NULL)
	{
		std::cerr << "Can't Load Image\n";
		return -1;
	}

	IplImage *gray = cvCreateImage(cvGetSize(imgA),IPL_DEPTH_8U,1);
	cvCvtColor(imgA,gray,CV_BGR2GRAY);
	cvCanny(gray,gray,10,20);


	CvMemStorage *storage = cvCreateMemStorage (0); //メモリストレージ
	CvSeq *contours = 0; //シーケンス

	int x = cvFindContours (gray, storage, &contours);
	cvDrawContours (imgA, contours, CV_RGB (255, 0, 0), CV_RGB (0, 255, 0),1,1);
	std::cout <<"輪郭が"<< x << "個見つかりました\n";

	cvNamedWindow("Basic Find Contours");
	cvShowImage("Basic Find Contours",imgA);
	
	cvWaitKey();

	cvReleaseImage(&imgA);
	cvReleaseImage(&gray);
	cvReleaseMemStorage(&storage);
	cvDestroyAllWindows();

	return 0;
}

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






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


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

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