opencv 如何提取旋转矩形的ROI

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

opencv 如何提取旋转矩形的ROI_第1张图片 


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

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

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

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





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

你可能感兴趣的:(opencv 如何提取旋转矩形的ROI)