opencv鼠标四点获取一个矩形

环境W10+vs2017+Opencv3.2

通过鼠标四点获取一个矩形


void GetRectTwoPoint::CornerGetPoint()
{
namedWindow("findCornerImage");
imshow("findCornerImage", sourceImage);

GlobalRecImage = sourceImage.clone();
setMouseCallback("findCornerImage", FindCornerMouseEvent, 0); //根据鼠标获取感兴趣的区域 
waitKey(0);


}

void FindCornerMouseEvent(int event, int x, int y, int flags, void* data)
{
switch (event)
{
case CV_EVENT_LBUTTONDOWN:
startPoint = Point(x, y);


if (!got_beigin_point)
{
foundPoint.push_back(startPoint);
foundPointMouse.push_back(startPoint);
got_beigin_point = true;
}

break;
case   CV_EVENT_MOUSEMOVE:
// if (got_beigin_point)
// {
// endPoint = Point(x, y);
// }
break;
case CV_EVENT_RBUTTONDOWN:
got_end_point = true;
endPoint = Point(x, y);
foundPoint.push_back(endPoint);
foundPointMouse.push_back(endPoint);
break;
case CV_EVENT_MBUTTONDOWN:

imwrite("C:\\Users\\user\\Desktop\\simon涂胶项目\\涂胶Opencv\\x64\\Debug\\image\\1.jpg", GlobalRecImage);
WriteFourPoint();
break;
default:
break;
}
if (got_end_point)
{
line(GlobalRecImage, startPoint, endPoint, Scalar(0, 0, 255), 5);


got_end_point = false;
imshow("findCornerImage", GlobalRecImage);
waitKey(0);
}


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值