opencv 마우스 이벤트!
cvLoadImage로 로드한 IplImage에 하다가
마우스를 클릭한 위치를 볼 수 있게 마우스 이벤트를 추가해보겠습니다.
이미지 로드하는 부분은 동일합니다.
void onMouseEvent(int event, int x, int y, int flags, void* userdata);
//------------------------------------------------------------
IplImage *loadIplImage = cvLoadImage(FileName);
tempImg = cvCloneImage(loadIplImage);
cvCopy(loadIplImage, tempImg);
cvNamedWindow(curWindowName, 0); //영상을 표시할 윈도우를 생성(0/1)
cvShowImage(curWindowName, loadIplImage); //윈도우에 출력
//마우스 이벤트 등록
cvSetMouseCallback(curWindowName, onMouseEvent, (void*)&loadIplImage);//마우스 이벤트 등록
//
//PictureControlView(loadIplImage);
cvWaitKey(0); //프로그램의 동작을 잠시 멈추고 사용자로부터 키 입력을 기다린다.
cvReleaseImage(&loadIplImage); //할당된 메모리 공간을 해제한다.
cvDestroyWindow(curWindowName); //윈도우를 닫고, 윈도우를 위해 동적할당된 메모리 공간을 모두 해제한다.
//cvDestroyAllWindows(); //한번에 모든 창을 닫는다.
//------------------------------------------------------------
void onMouseEvent(int event, int x, int y, int flags, void* userdata)
{
CString strTemp;
if (event == cv::EVENT_LBUTTONDOWN)
{
strTemp.Format("EVENT_LBUTTONDOWN X = %d, Y = %d", x, y);
theApp.MainDlg ->putListLog(strTemp);
}
if (event == cv::EVENT_LBUTTONUP)
{
strTemp.Format("EVENT_LBUTTONUP X = %d, Y = %d", x, y);
theApp.MainDlg->putListLog(strTemp);
}
if (event == cv::EVENT_MOUSEMOVE)
{
}
}
왼쪽 마우스
press일때 EVENT_LBUTTONDOWN
release 일때 EVENT_LBUTTONUP
마우스를 움직일때 EVENT_MOUSEMOVE
이벤트가 들어옵니다.
'배워보자!! > Opencv' 카테고리의 다른 글
[Opencv] 이미지 ROI 설정 (0) | 2019.06.20 |
---|---|
[Opencv] Iplimage이미지로드, Picture Control에 보여주기 (0) | 2019.06.19 |
[Opencv] Mfc bmp 이미지 로드하기 (0) | 2019.06.17 |
[Opencv] IplImage 이미지 상하,좌우 반전 (0) | 2018.11.29 |
[Opencv] Iplimage 이미지 회전 (0) | 2018.11.27 |
댓글