opencv:鼠标事件
2017-02-07 22:26
197 查看
鼠标事件类型
鼠标事件标志
用鼠标画矩形
CV_EVENT_MOUSEMOVE 0 CV_EVENT_LBUTTONDOWN 1 CV_EVENT_RBUTTONDOWN 2 CV_EVENT_MRUTTONDOWN 3 CV_EVENT_LBUTTONUP 4 CV_EVENT_RBUTTONUP 5 CV_EVENT_MBUTTONUP 6 CV_EVENT_LBUTTONDBLCLK 7 CV_EVENT_RBUTTONDBLCLK 8 CV_EVENT_MBUTTONDBLCLK 9
鼠标事件标志
CV_EVENT_FLAG_LBUTTON 1 CV_EVENT_FLAG_RBUTTON 2 CV_EVENT_FLAG_MBUTTON 3 CV_EVENT_FLAG_CTRLKEY 8 CV_EVENT_FLAG_SHIFTKEY 16 CV_EVENT_FLAG_ALTKEY 32
用鼠标画矩形
//鼠标事件注册 void cvSetMouseCallback(const char* window_name,CvMouseCallback on_mouse,void* param = NULL);
#include "cv.h" #include "highgui.h" //鼠标事件声明 void my_mouse_callback(int event,int x,int y,int flags,void* param); //声明矩形 CvRect box; //画矩形的标志变量 bool drawing_box = false; //在图像上画一个矩形 void draw_box(IplImage* img,CvRect rect) { cvRectangle(img,cvPoint(box.x,box.y),cvPoint(box.x+box.width,box.y+box.height),cvScalar(0xff,0x00,0x00)); } int main(int argc,char** argv) { box = cvRect(-1,-1,0,0); IplImage* image = cvCreateImage(cvSize(200,200),IPL_DEPTH_8U,3); cvZero(image); IplImage* temp = cvCloneImage(image); cvNamedWindow("Example3_6",0); //注册鼠标事件 cvSetMouseCallback("Example3_6",my_mouse_callback,(void*)image); while (1) { cvCopyImage(image,temp); if (drawing_box) { draw_box(temp,box); } cvShowImage("Example3_6",temp); if (cvWaitKey(15) == 27) { break; } } cvReleaseImage(&image); cvReleaseImage(&temp); cvDestroyAllWindows(); } void my_mouse_callback(int event,int x,int y,int flags,void* param) { IplImage* image = (IplImage*)param; switch (event) { case CV_EVENT_MOUSEMOVE: { if (drawing_box) { box.width = x - box.x; box.height = y - box.y; } } break; case CV_EVENT_LBUTTONDOWN: { drawing_box = true; box = cvRect(x,y,0,0); } break; case CV_EVENT_LBUTTONUP: { drawing_box = false; if (box.width < 0) { box.x +=box.width; box.width *= -1; } if (box.height <0) { box.y += box.height; box.height *= -1; } draw_box(image,box); } break; default: break; } }
相关文章推荐
- Opencv打开摄像头VideoCapture 以及鼠标画图事件
- 学习OpenCV——鼠标事件(画框)
- OpenCV响应鼠标事件&改变像素颜色
- OpenCv鼠标事件管理
- opencv3 计算反向投影-鼠标事件
- OpenCV鼠标滑轮事件
- openCV鼠标事件实例
- Opencv处理鼠标事件
- 学习OpenCV(第四章 鼠标事件)
- OpenCV之鼠标和键盘事件处理
- python-opencv-鼠标事件-画框圈定目标
- OpenCV3添加滑动条和鼠标事件到图形界面
- 【AI基础】python:openCV——处理鼠标事件(1)
- 【OpenCV】 处理鼠标事件
- OPENCV学习笔记1-5_鼠标事件
- opencv3 实现模版匹配-鼠标事件
- opencv图像处理之鼠标事件(矩形roi绘图)
- OpenCV 鼠标事件
- OpenCV 鼠标事件 注意事项
- opencv鼠标响应事件学习整理