openCV 用鼠标在窗口中画方形
来源:互联网 发布:混沌理论 知乎 编辑:程序博客网 时间:2024/05/04 13:05
<span style="font-size:14px;">// chapter.cpp : 定义控制台应用程序的入口点。//#include "stdafx.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(0,0,255));}int _tmain(int argc, _TCHAR* argv[]){box=cvRect(-1,-1,0,0);//初始化boxIplImage *image=cvCreateImage(cvSize(200,200),IPL_DEPTH_8U,3);cvZero(image);IplImage * temp=cvCloneImage(image);cvNamedWindow("Box",0);cvSetMouseCallback("Box",my_mouse_callback,(void *)image);//将回调函数注册到openCVwhile(1){cvCopy(image,temp);if(drawing_box) draw_box(temp,box);cvShowImage("Box",temp);if(cvWaitKey(15)==27) break;}cvReleaseImage(&image);cvReleaseImage(&temp);cvDestroyWindow("Box");return 0;}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;}}</span>
0 0
- opencv用鼠标在窗口中画方形的程序
- openCV 用鼠标在窗口中画方形
- opencv用鼠标在窗口中画方形的程序
- OPENCV中例4-1用鼠标在窗口中画方形的程序
- 用鼠标在窗口中画方形的程序------基于OpenCV+VS
- Opencv HighGUI函数_用鼠标在窗口中画方形
- 例4-1 用鼠标在窗口中画方形
- Opencv 用鼠标在窗口中画方形的程序实现_第四章书中源码摘写
- opencv-鼠标在窗口中画矩形
- OpenCV学习笔记-用鼠标在窗口中画矩形
- 基于opencv用鼠标在窗口中画矩形和线段的程序
- 用鼠标在窗口中绘制矩形
- opencv窗口鼠标绘图
- linux 下调用opencv接口函数实现鼠标在窗口画方框操作
- 鼠标在窗口中绘制矩形
- 在OpenCV中利用鼠标绘制直线
- 在OpenCV中调用鼠标事件
- 在OpenCV中调用鼠标事件
- eclipse 启动不了,提示adt版本过低
- 浏览器快捷键劫持
- 数据结构(二):链表、链队列
- 数据库基础:连接查询总结
- PYTHON风格规范-Google 开源项目风格指南
- openCV 用鼠标在窗口中画方形
- MFC笔记(一)Slider Control
- Gerald is into Art(CF)
- Java 希尔排序
- fedora老的源(比如在2015年时如何设置访问fedora16的源)
- GCD的方方面面
- SQLite数据库及其使用实例
- hdu4599Dice 概率dp+扩展欧几里得
- 对TCP/IP网络协议的深入浅出归纳(转载)