学习OpenCV(二)
来源:互联网 发布:mac 桌面上 ds.store 编辑:程序博客网 时间:2024/05/29 18:00
用鼠标在窗口中画正方形:
#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("111",0); cvSetMouseCallback("111", my_mouse_callback, (void*)image); while (1){ cvCopyImage(image, temp); if (drawing_box) draw_box(temp, box); cvShowImage("111", temp); if (cvWaitKey(15) == 27) break; } cvReleaseImage(&image); cvReleaseImage(&temp); cvDestroyWindow("111"); 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; }}
0 0
- 学习OpenCV(二)
- 学习OpenCV(二)
- OpenCV学习笔记(二)
- OpenCv学习笔记(二)
- opencv学习笔记(二)
- opencv学习笔记(二)
- OpenCV学习笔记(二)
- opencv学习笔记(二)
- 学习opencv记录(二)
- openCV学习日志(二)
- opencv 学习笔记(二)
- OpenCV学习笔记(二)
- OpenCV学习笔记(二)—— OpenCV整体结构
- 【opencv、机器学习】opencv中的SVM图像分类(二)
- openCV学习笔记(二)---openCV系列基本操作
- openCV学习笔记(二)---openCV系列基本操作(2)
- OpenCV学习笔记系列(二)
- OpenCV 2.2 的学习笔记(二)
- KMP之自创匹配- -
- C语言 - 什么是数据类型?数据类型的本质
- Java动态代理
- [ahk]读取excel文件实例
- Android自定义view(2)
- 学习OpenCV(二)
- 关于 lua的常用 语句 比较实用
- 熟悉msfvenom生成木马程序过程,并执行和监听控制.
- JPA 学习篇(四)Query接口下的 API 测试
- Java基础之String中equals,声明方式,等大总结
- MyBatis结果集映射(ResultMap)
- java中堆和栈的区别
- python列表函数append(),extend()只改变对象的值,无返回值
- 使用AIDL实现进程间通信