1.鼠标绘制
详情:Opencv函数setMouseCallback鼠标事件响应
1.设置MouseCallback函数,函数名可随意,但是参数要与MouseCallback的一致。
2.setMouseCallback()
2.以圆形为例,其中有矩形的方法
可以先提取出矩形的区域,再利用mask提取圆形的区域。
#include<opencv2/opencv.hpp>
#include<iostream>
#include<imgproc.hpp>
#include<cmath>
using namespace cv;
using namespace std;
Point startp(-1, -1);
Point endp(-1, -1);
//绘制圆,需要中心坐标和半径
Point centerp(-1, -1);
int radius = 0;
Mat temp;
void MouseDraw(int event,int x,int y,int flag,void* usedata ) {
Mat image = *((Mat*)usedata);
Mat roi;
if (event == EVENT_LBUTTONDOWN) {//左键按下
centerp.x = x;
centerp.y = y;
cout << "center point: " << centerp << endl;
}
else if (event == EVENT_MOUSEMOVE) {//鼠标移动
if (centerp.x > 0 and centerp.y >

这篇博客介绍了如何使用OpenCV的鼠标回调函数setMouseCallback实现鼠标绘制功能,特别是绘制圆的过程。当左键按下时记录圆心坐标,鼠标移动时更新半径并显示临时圆形,左键抬起时完成圆形绘制并截取该区域。同时,通过矩形截取和mask操作提取出圆形ROI。示例代码展示了整个流程。
最低0.47元/天 解锁文章

8800

被折叠的 条评论
为什么被折叠?



