您的位置:首页 > 运维架构

opencv 如何提取旋转矩形的ROI

2016-03-22 17:17 351 查看
原文地址:http://zhidao.baidu.com/link?url=Y3z26Y6Ik8lBMssFBM0xhqxKW2i8y2pb5rWkPEhwZpV2b0lwRsfwMxSRlf1oqjrv2w8eIe6qcNQ6qOkyyX5Tba





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

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

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



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

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 要注意的是因为点在轮廓内部,所获距离为负数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: