最終更新: mikk_ni3_92 2007年12月07日(金) 18:25:45履歴
現在地 >> メニュー >> サンプルコード::OpenCV >> OpenCV::ドラッグ処理
#include <cv.h>
#include <highgui.h>
#include <cstdio>
#include <iostream>
using namespace std;
void Mouse( int event, int x, int y, int flags ,void *param);
CvSize window={300,300};//ウィンドウサイズ
int main( int argc, char **argv)
{
IplImage *imgA = cvCreateImage(window,IPL_DEPTH_8U,3);
cvSet (imgA, cvScalarAll (255), 0);
cvNamedWindow("window",CV_WINDOW_AUTOSIZE);
cvShowImage("window",imgA);
cvSetMouseCallback("window", Mouse);
cvWaitKey(0); // 0秒待つ => ずっと入力待ち
cvReleaseImage( &imgA );
cvDestroyWindow("window");
return 0;
}
/**[ここから コールバック]***/
void Mouse( int event, int x, int y, int flags ,void *param = NULL) // コールバック関数
{
static bool MOUSE_FLAG=false;
switch(event)
{
case CV_EVENT_LBUTTONDOWN:
MOUSE_FLAG = true;
printf("(%d,%d) \n",x,y);
break;
case CV_EVENT_LBUTTONUP:
MOUSE_FLAG=false;
break;
}
if*1
{
printf("(%d,%d) \n",x,y);
}
}
#include <cv.h>
#include <highgui.h>
#include <cstdio>
#include <iostream>
using namespace std;
void Mouse( int event, int x, int y, int flags ,void *param);
CvSize window={300,300};//ウィンドウサイズ
int main( int argc, char **argv)
{
IplImage *imgA = cvCreateImage(window,IPL_DEPTH_8U,3);
cvSet (imgA, cvScalarAll (255), 0);
cvNamedWindow("window",CV_WINDOW_AUTOSIZE);
cvShowImage("window",imgA);
cvSetMouseCallback("window", Mouse);
cvWaitKey(0); // 0秒待つ => ずっと入力待ち
cvReleaseImage( &imgA );
cvDestroyWindow("window");
return 0;
}
/**[ここから コールバック]***/
void Mouse( int event, int x, int y, int flags ,void *param = NULL) // コールバック関数
{
static bool MOUSE_FLAG=false;
switch(event)
{
case CV_EVENT_LBUTTONDOWN:
MOUSE_FLAG = true;
printf("(%d,%d) \n",x,y);
break;
case CV_EVENT_LBUTTONUP:
MOUSE_FLAG=false;
break;
}
if*1
{
printf("(%d,%d) \n",x,y);
}
}