opencv用鼠标在窗口中画方形的程序
2014-06-13 00:00
162 查看
#include <iostream> #include "cv.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(0xff,0x00,0x00)); } int main() { box = cvRect(-1,-1,0,0); IplImage* image = cvCreateImage(cvSize(200,200), IPL_DEPTH_8U, 3); cvZero(image); IplImage* temp = cvCloneImage(image); cvNamedWindow("Box Example"); cvSetMouseCallback("Box Example", my_mouse_callback, (void*)image); while(1) { cvCopyImage(image, temp); if(drawing_box) draw_box(temp, box); cvShowImage("Box Example", temp); if(cvWaitKey(15)==27) break; } cvReleaseImage(&image); cvReleaseImage(&temp); cvDestroyWindow("Box Example"); } 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; } }
相关文章推荐
- opencv用鼠标在窗口中画方形的程序
- 用鼠标在窗口中画方形的程序------基于OpenCV+VS
- opencv用鼠标在窗口中画方形的程序
- Opencv 用鼠标在窗口中画方形的程序实现_第四章书中源码摘写
- OPENCV中例4-1用鼠标在窗口中画方形的程序
- OpenCV_用鼠标在窗口画方形
- 基于opencv用鼠标在窗口中画矩形和线段的程序
- 用鼠标在窗口中画方形的程序
- openCV 用鼠标在窗口中画方形
- Python-OpenCV 杂项(二)(三): 鼠标事件、 程序性能的检测和优化
- 利用OpenCV鼠标控制窗口大小
- opencv--用鼠标动态改变显示图像窗口大小
- 用鼠标在窗口中画方形
- silverlight4 程序升级到 5,关闭子窗口,自动把父窗口变灰失效,对鼠标无反应的解决办法
- opencv简单程序1:用户通过鼠标来…
- Opencv学习记录之鼠标窗口响应
- C++获取程序窗口外的鼠标坐标
- OpenCV学习笔记-用鼠标在窗口中画矩形
- 编写一个单文档应用程序,程序启动后在用户区显示一个方形,当用鼠标左键单击用户区后,该方形会变成圆形,如果再单击则又变回方形
- 使用mouse_event模拟鼠标事件时,程序窗口失去焦点就失效