OpenCV 鼠标事件
2018-01-03 19:41
309 查看
#include"OpenCVLib.hpp" #define WINDOW_NAME "TEST" using namespace cv; void on_MouseHandle(int event,int x,int y,int flags,void *param); void DrawRectangle(Mat& img,Rect box); void ShowHelpText(); Rect g_rectangle; bool g_bDrawingBox = false; RNG g_rng(12345); int main(){ g_rectangle = Rect(-1,-1,0,0); Mat srcImage(600,800,CV_8UC3),tempImage; srcImage.copyTo(tempImage); // g_rectangle = Rect(-1,-1,0,0); srcImage = Scalar::all(0); namedWindow(WINDOW_NAME); setMouseCallback(WINDOW_NAME,on_MouseHandle,(void*)&srcImage); while(true){ srcImage.copyTo(tempImage); if(g_bDrawingBox) DrawRectangle(tempImage,g_rectangle); imshow(WINDOW_NAME,tempImage); if(waitKey(10) == 27)break; } } void on_MouseHandle(int event,int x,int y,int flags,void * param){ Mat & image = *(Mat*)param; switch(event){ case EVENT_MOUSEMOVE: { if(g_bDrawingBox){ g_rectangle.width = x-g_rectangle.x; g_rectangle.height = y-g_rectangle.y; } } break; case EVENT_LBUTTONDOWN: { g_bDrawingBox = true; g_rectangle = Rect(x,y,0,0); } break; case EVENT_LBUTTONUP: { g_bDrawingBox = false; if(g_rectangle.width < 0){ g_rectangle.x += g_rectangle.width; g_rectangle.width *= -1; } if(g_rectangle.height < 0){ g_rectangle.y += g_rectangle.height; g_rectangle.height *= -1; } } break; } } void DrawRectangle(Mat &img,Rect box){ //tl : top and left ? ; br : bottom and right ? ;random -- uniform? rectangle(img,box.tl(),box.br(),Scalar(g_rng.uniform(0,255),g_rng.uniform(0,255),g_rng.uniform(0,255))); }
相关文章推荐
- Python OpenCV学习笔记之:处理鼠标事件
- opencv2+ 鼠标事件详解及示例代码
- Opencv下图像对鼠标事件的响应
- OpenCV--鼠标事件响应
- OpenCv鼠标事件管理
- Opencv鼠标事件下的ROI
- OPENCV学习笔记1-5_鼠标事件
- OpenCV学习笔记(4)之鼠标事件
- Opencv下图像对鼠标事件的响应
- openCV鼠标事件实例
- opencv_鼠标事件
- opencv3 实现模版匹配-鼠标事件
- OpenCV响应鼠标事件&改变像素颜色
- OpenCV鼠标滑轮事件
- OpenCV3添加滑动条和鼠标事件到图形界面
- OpenCV学习(一):图片的读取显示以及鼠标点击事件的设置
- opencv鼠标响应事件
- Opencv图像识别从零到精通(13)----点线圆矩形与鼠标事件
- OpenCV 鼠标事件 注意事项
- [置顶][置顶]opencv图像处理4--opencv下鼠标事件