現在地 >> メニュー >> サンプルコード::OpenCV >> OpenCVとマウス入力

関連 : OpenCV::基本編03OpenCV::クリック地点と線描画

問題


読み込んだ画像を表示し、左クリックすると
そのクリック位置の座標をコマンドプロンプトに表示せよ。

jpg画像

答え

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

const char *filename = "test.jpg";

//--- プロトタイプ宣言 ---//
void Mouse( int event, int x, int y, int flags ,void *param);


//---------- メイン関数 -----------//
int main( int argc, char **argv)
{
	IplImage *imgA = cvLoadImage( filename, CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
	if(imgA ==NULL)
	{
		std::cerr << filename <<":Can't load Image\n";
		return -1;
	}

	cvNamedWindow(filename,CV_WINDOW_AUTOSIZE);
	cvShowImage(filename,imgA);

	cvSetMouseCallback(filename, Mouse);  //コールバック関数の登録


	cvWaitKey(0); // 0秒待つ => ずっと入力待ち


	cvReleaseImage( &imgA );

	cvDestroyWindow(filename);

	return 0;
}


//--------- ここからコールバック関数 -----------//
void Mouse( int event, int x, int y, int flags ,void *param = NULL) // コールバック関数
{
	switch(event)
	{
		case CV_EVENT_LBUTTONDOWN:
			std::cout << x << "," << y << "\n";
		break;

		default:
		break;
	}

}

メモ


左上が原点。

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






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


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

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