鼠标选择图像上点或者闭合多边形
2017-09-17 21:31
232 查看
设计思路:
在主函数中选择工作模式:半自动模式下,双击鼠标左键得到一个标记点;手动模式下,单击左键选择闭合多边形顶点,单击右键结束一个闭合多边形选择。
在主函数中选择工作模式:半自动模式下,双击鼠标左键得到一个标记点;手动模式下,单击左键选择闭合多边形顶点,单击右键结束一个闭合多边形选择。
#define AUTO 0 #define SEMI_AUTO 1 #define NON_AUTO 2 int model = 0;//工作模式全局变量 bool m_first = true;//手动起点标志全局变量 int whole_i; void On_mouse_NON_AUTO(int event, int x, int y, int flags, void*); void On_mouse_SEMI_AUTO(int event, int x, int y, int flags, void*); int main() { string impath2 = "./img/497.bmp"; Mat img2 = imread(impath2,0); cout << "工作模式选择(0-自动 1-半自动 2-手动):" ; cin >> model; string wname = "半自动or手动"; imshow(wname, img2); switch (model) { case AUTO: cout << "自动" << endl; break; case SEMI_AUTO: whole_i = 0; setMouseCallback(wname, On_mouse_SEMI_AUTO, 0); break; case NON_AUTO: m_first = true; setMouseCallback(wname, On_mouse_NON_AUTO, 0); whole_i = 0; break; } waitKey( ); return 0; } void On_mouse_NON_AUTO(int event, int x, int y, int flags, void*) { Point pre_p,p0; if (event == EVENT_LBUTTONDOWN) { if (m 8b6f _first) { p0 = Point(x, y); pre_p = p0; m_first = false; cout <<"起点:"<< p0.x << " " << p0.y << endl; } else { pre_p = Point(x, y); cout << pre_p.x << " " << pre_p.y << endl; } } else if(event == CV_EVENT_RBUTTONDBLCLK) { m_first = true; whole_i++; cout << "结束一圈啦!" << endl; } } void On_mouse_SEMI_AUTO(int event, int x, int y, int flags, void*) { Point pre_p; if (event == CV_EVENT_LBUTTONDBLCLK) { pre_p = Point(x, y); cout << pre_p.x << " " << pre_p.y << endl; whole_i++; } }
相关文章推荐
- opencv2鼠标选择感兴趣区域后对两幅图像进行均值漂移算法
- ROS_Hydro_OpenCV2_用鼠标选择图像区域,并保存1,2,3...
- 解决UGUI 鼠标点击或者触摸失去选择焦点的问题。
- C# 图像处理:实现鼠标选择矩形截图
- 灰度或者彩色图像的直方图均衡化+Opencv(可以选择其中的某一个区域进行均衡)
- 读取图片,并通过鼠标交互,在图片上选择一块矩形区域,然后把这个矩形区域的子图像显示出来
- OpenCV截取图像的任意形状区域,规则的图形(圆、椭圆、矩形),不规则鼠标自己选择
- 取消用鼠标拖动或者用键盘在编辑框中选择的文本内容
- 鼠标或者触屏滑动旋转角度查看人物效果(类似王者荣耀里选择人物查看)
- 网页禁止复制,鼠标右键,鼠标左键,选择等
- OpenCV用GDI或者GDI+函数对IplImage图像处理
- 用最小周长多边形(MPP)描述图像边界
- JavaScript简单实现鼠标拖动选择功能
- 鼠标经过图像变大,IE8以下不兼容
- js网页禁止复制-禁止另存为-禁止选择-禁止鼠标右键代码
- 双击我的电脑或者盘符,出现无法打开,跳出打开方式选择等解决方法分享
- 鼠标的图像
- ASP.NET 2.0 TreeView中用JavaScript实现选择子接点CheckBox是自动选择上父节点(或者所有父节点)
- login界面 checkbox选择显示或者隐藏密码
- ExtJs根据combo的选择值决定表单项的隐藏或者显示