opencv鼠标操作
来源:互联网 发布:攻城狮和程序员打油诗 编辑:程序博客网 时间:2024/06/04 23:19
#include <opencv2/opencv.hpp>using namespace std;using namespace cv;void on_MouseHandle(int event,int x,int y,int flags,void * param);void DrawRectangle(cv::Mat& img,cv::Rect box);Rect g_rectangle;bool g_bDrawingBox = false;RNG g_rng(12345);int main(int argc,char** argv){g_rectangle = Rect(-1,-1,0,0);Mat srcImage(600,800,CV_8UC3),tempImage;srcImage.copyTo(tempImage);srcImage = Scalar::all(0);namedWindow("程序窗口");setMouseCallback("程序窗口",on_MouseHandle,(void*)&srcImage);while(1){srcImage.copyTo(tempImage);if(g_bDrawingBox)DrawRectangle(tempImage,g_rectangle);imshow("程序窗口",tempImage);if(waitKey(10)==27)break;}return 0;}void on_MouseHandle(int event,int x,int y,int flags,void * param){Mat & image = *(cv::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;}DrawRectangle(image,g_rectangle);}break;}}void DrawRectangle(cv::Mat& img,cv::Rect box){rectangle(img,box.tl(),box.br(),Scalar(g_rng.uniform(0,255),g_rng.uniform(0,255),g_rng.uniform(0,255)));rectangle(img,box.tl(),box.br(),Scalar(g_rng.uniform(0,255),g_rng.uniform(0,255),g_rng.uniform(0,255)));}
阅读全文
0 0
- opencv 鼠标操作
- Opencv鼠标操作
- OpenCV之鼠标操作
- OpenCV 鼠标操作
- opencv 鼠标操作 setMouseCallback
- opencv鼠标操作
- OPENCV中操作鼠标
- opencv鼠标操作
- opencv:鼠标操作
- opencv-鼠标操作
- opencv 3.0 鼠标操作 setMouseCallback
- 基于opencv的鼠标操作
- openCV学习笔记-鼠标操作
- opencv 鼠标操作 裁剪图片
- OpenCV常用图像操作和鼠标操作
- opencv的鼠标,滑块操作
- opencv鼠标操作及GUI矩形绘画
- OpenCV 鼠标、滑动条交互式操作
- java.lang.string常用API
- Android Canvas画板
- Kafka相关
- HDU 3714 Error Curves【三分查找】【经典题】
- CSS中的position属性值:static,relative,absolute,fixed详解
- opencv鼠标操作
- Ubuntu系统安装PyCharm
- oracle数据库《3》
- LintCode-最大间距
- KMeans.java 代码解读与时间序列聚类
- 机器学习scikit-learn入门教程
- 常用函数
- 文件操作之fprintf函数的使用
- ios 绘制三角形