opencv 如何提取旋转矩形的ROI

原文地址:http://zhidao.baidu.com/link?url=Y3z26Y6Ik8lBMssFBM0xhqxKW2i8y2pb5rWkPEhwZpV2b0lwRsfwMxSRlf1oqjrv2w8eIe6qcNQ6qOkyyX5Tba

 


如图,想这样的一幅图片,我得到的是RotatedRect结构的旋转矩形。现在有两个问题:

  1. 我如何把这个旋转矩形(包含轮廓信息啦)保存到另一个Mat中,opencv中有提取ROI是对rect来说的,旋转的矩形就不知道怎么办了

  2. 如果得不到这个旋转矩形的话,那么有没有办法计算轮廓到边界框的距离呢——就是轮廓上的点分别到四个边界框的距离。

    像这种正规的直上直下的矩形框到边界的距离可以通过访问像素得到,但是像旋转后的又如何得到距离呢?因为毕竟访问像素不大可行了呀





1 使用RotatedRect minAreaRect(InputArray points)获取这个旋转矩形
2 将其四角存到某vector<Point>里面,变成一个轮廓,怎么获取四角?参见http://docs.opencv.org/modules/core/doc/basic_structures.html?highlight=rotatedrect#RotatedRect
你一定能搞出来。
3 然后遍历内部那个轮廓的各个点,然后使用pointPolygonTest这个opencv函数确定此点与四边形的距离。
4 要注意的是因为点在轮廓内部,所获距离为负数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值