現在地 >> メニュー >> OpenCV >> highgui編01 >> highgui編01::まとめ

問題

画像を読み込んで、マウスコールバックを登録、
クリックした位置を中心に円を描画せよ

答え

#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 = "testimg.png";

void mouseCbFunc(int event, int x, int y ,int flags, void* param)
{
	//プログラムしやすいようにポインタをわたす
	IplImage *img = static_cast<IplImage *>(param);
	switch(event)
	{
	case CV_EVENT_LBUTTONDOWN:
		cvDrawCircle(img,cvPoint(x,y),50,CV_RGB(255,0,255),2);
		cvShowImage("mouse test",img);
		break;
	}
}

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

	cvNamedWindow("mouse test");
	cvShowImage("mouse test",imgA);
	cvSetMouseCallback("mouse test",mouseCbFunc,static_cast<void *>(imgA));

	cvWaitKey();

	cvReleaseImage(&imgA);
	cvDestroyAllWindows();

	return 0;
}

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






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


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

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