学习OpenCV——鼠标事件(画框)
2012-05-16 19:51
513 查看
#include "cv.h" #include "highgui.h" bool check_line_state=false; IplImage* workImg; IplImage* imgshow; CvRect ROI_rect; void on_mouse4(int event, int x,int y,int flags,void* param) { int thickness=2; CvPoint p1,p2; if(event==CV_EVENT_LBUTTONDOWN) { //当前鼠标位置(x,y) ROI_rect.x=x; ROI_rect.y=y; check_line_state=true; } else if(check_line_state&&event==CV_EVENT_MOUSEMOVE)//鼠标状态 { cvCopy(workImg,imgshow);//这一步很重要,不断更新显示图像,不然画出的图像如图2所示 p1=cvPoint(ROI_rect.x,ROI_rect.y); p2=cvPoint(x,y); cvRectangle(imgshow,p1,p2,CV_RGB(0,255,150),thickness,CV_AA,0); cvShowImage("image",imgshow); } else if(check_line_state&&event==CV_EVENT_LBUTTONUP) { check_line_state=false; cvWaitKey(20); } } int main() { workImg=cvLoadImage("D:/Demo.jpg",1); imgshow=cvCreateImage(cvSize(workImg->width,workImg->height),workImg->depth,workImg->nChannels); cvCopy(workImg,imgshow); //cvFlip(imgshow); ROI_rect.x=ROI_rect.y=0; cvNamedWindow("image",CV_WINDOW_AUTOSIZE); cvShowImage("image",imgshow); cvSetMouseCallback("image",on_mouse4); cvWaitKey(); cvDestroyWindow("image"); }
图1: 图2:
相关文章推荐
- 学习OpenCV——鼠标事件(画框)
- opencv鼠标响应事件学习整理
- 学习OpenCV(第四章 鼠标事件)
- opencv学习心得(一)鼠标响应事件绘制轮廓
- OpenCV学习(一):图片的读取显示以及鼠标点击事件的设置
- openCV鼠标事件学习
- opencv学习心得(一)鼠标响应事件绘制轮廓
- 学习OpenCV——鼠标事件&亮暗化精度最高(与距离反比)&批处理
- OpenCV学习笔记(4)之鼠标事件
- opencv鼠标响应事件学习整理
- Python OpenCV学习笔记之:处理鼠标事件
- python-opencv-鼠标事件-画框圈定目标
- OPENCV学习笔记1-5_鼠标事件
- 学习OpenCV——鼠标事件 输出鼠标坐标&区域亮化
- Opencv鼠标事件
- 【js学习笔记-094】---------鼠标事件
- opencv2+ 鼠标事件详解及示例代码
- Opencv学习之鼠标响应及画图操作
- opencv2对图像运用鼠标事件
- opencv:鼠标事件