Opencv鼠标绘图程序
来源:互联网 发布:up to date数据库介绍 编辑:程序博客网 时间:2024/04/30 08:48
// 鼠标绘图#include <opencv2/opencv.hpp>using namespace std;const char *srcWindowsName = "鼠标绘图程序";const char *saveWindowsName = "鼠标绘图图像";//CvPoint lastprePoint = cvPoint(0,0);//CvPoint lastcurrPoint = cvPoint(0,0);int colornum = 0;int resize = 0;CvMat *sizematrix = {{100, 100, 100}};//int thickness = 0;//鼠标响应事件void on_mouse(int event, int x, int y, int flag, void *param){static bool press = false;static CvPoint prePoint = cvPoint(0, 0);switch(event){case CV_EVENT_LBUTTONDOWN:press = true;prePoint = cvPoint(x, y);//lastprePoint= prePoint;break;case CV_EVENT_LBUTTONUP://lastcurrPoint = cvPoint(x, y);press = false;break;//case CV_EVENT_MBUTTONDOWN://cvLine((IplImage*)param, lastprePoint, lastcurrPoint, CV_RGB(255,255,255), 20);//cvShowImage(srcWindowsName, (IplImage*)param);//break;case CV_EVENT_MOUSEMOVE:if(press){CvPoint currPoint = cvPoint(x, y);if(colornum == 0)cvLine((IplImage*)param, prePoint, currPoint, CV_RGB(0,0,0), 20);//画线函数,指定了线条的颜色,起始点,厚度等heielse if(colornum == 1)cvLine((IplImage*)param, prePoint, currPoint, CV_RGB(255,255,255), 20);//画线函数,指定了线条的颜色,起始点,厚度等 baielse if(colornum == 2)cvLine((IplImage*)param, prePoint, currPoint, CV_RGB(0,255,255), 20);//画线函数,指定了线条的颜色,起始点,厚度等lvprePoint = currPoint;cvRectangle((IplImage*)param, cvPoint(300, 300), cvPoint(325, 325), CV_RGB(0,255,255), CV_FILLED);cvShowImage(srcWindowsName, (IplImage*)param);}break;}}int main(){const int WIDTH = 700, HEIGHT = 500;//创建图像IplImage *srcImage = cvCreateImage(cvSize(WIDTH, HEIGHT), IPL_DEPTH_8U, 3);cvSet(srcImage, CV_RGB(255,255,255));//图像背景颜色//创建窗口cvNamedWindow(srcWindowsName, CV_WINDOW_AUTOSIZE);cvRectangle(srcImage, cvPoint(300, 300), cvPoint(325, 325), CV_RGB(0, 255, 255), CV_FILLED);//显示图像cvShowImage(srcWindowsName, srcImage);//设置鼠标回调函数cvSetMouseCallback(srcWindowsName, on_mouse, (void*)srcImage);//键盘响应事件while(1){char c = cvWaitKey(33);if(c == 27) break;switch(char(c)){case 'r':cvSet(srcImage, CV_RGB(255,255,255));//设置背景cvShowImage(srcWindowsName, srcImage);break;case 'g':colornum = 2;break;case 'b':colornum = 0;break;case 'w':colornum = 1;break;case 's':cvSaveImage(srcWindowsName, srcImage);break;}}//销毁窗口,释放资源cvDestroyWindow(srcWindowsName);cvReleaseImage(&srcImage);return 0;}
0 0
- Opencv鼠标绘图程序
- opencv程序十一:鼠标绘图
- opencv 鼠标绘图
- Opencv做鼠标绘图
- opencv窗口鼠标绘图
- 利用opencv进行鼠标绘图
- OpenCV对鼠标绘图的支持
- 【OpenCV入门指南】第十一篇 鼠标绘图
- 【OpenCV入门指南】第十一篇 鼠标绘图
- 【OpenCV入门指南】第十一篇 鼠标绘图
- 【OpenCV入门指南】第十一篇 鼠标绘图
- 【OpenCV入门指南】第十一篇 鼠标绘图
- 【OpenCV入门指南】第十一篇 鼠标绘图
- python opencv入门 鼠标绘图(4)
- 【OpenCV入门指南】第十一篇 鼠标绘图
- OpenCV学习笔记4-鼠标绘图
- OpenCV中文网站例程——鼠标绘图,图像修复
- opencv图像处理之鼠标事件(矩形roi绘图)
- how to make PKG_CONFIG_PATH variable to refer an installed library?
- [经典]Linux内核中ioremap映射的透彻理解
- 黑马程序员_异常
- jsoup 学习笔记
- delphi 7编写的代码查看编辑器对注释的着色
- Opencv鼠标绘图程序
- 点双连通模版 求割点,点双缩点
- Rtmp协议简单分析(二)——协议交互过程
- 在VirtualBox中安装QTP10破解报CRC ERROR!
- CareerCup Eliminate all ‘b’ and ‘ac’ in an array of characters
- IOCP完成端口资料整理——"高大上",够全,够详细
- JavaMailSendTest
- Opencv轮廓检测
- innerText