关于旋转矩形的获取。

来源于多种,下面以二值化图为例。

在OpenCV中,使用findContours函数可以提取二值图像中的白色区域的轮廓。因为二值化图中只有白像素和黑像素。

FindContours函数有多种模式,然后我们使用的是RETR_EXTERNAL。RETR_EXTERNAL是只检测最外层轮廓的,所以我们可以把二值化中的大黑图中提取到白色图案中的轮廓,它是由一个个像素点构成的,也就是白色区域的边界点。

二值化图像示例是怎么样的?就是在一个矩阵中,出现不为0的几个数,那么就可以把它筛选出来。

它的检测模式是有好几种,采用的是只检测最外层轮廓。然后它的逼近方法也有好几种,采用的是压缩冗余点,然后这样可以使精度基本不变。然后它们的函数分别,检测模式的函数是RETR_EXTERNAL.然后它的逼近方法是chain Approx Sample。

这给我们一个思路,所以先将图像二值化,然后再调用findContours函数。

然后其中的参数根据自己调整,绘画出图矩形来。

在绘画矩形的时候,我们又根据二值化findContours给出的,输入给我们的点来画,然后我们就会得到它的width、它的height、它的angle。

然而有个很重要的事情,不仅是矩形具有这些性质,椭圆也是具有这些性质的。所以我们,比如说在识别被墩桥的时候,我们是可以使用椭圆的。

当然在使用的时候,我们要除以2来使用。

将矩形的width and height进行除二。因为椭圆方程中的a和b,它是其height and wide二分之

这样一来,我们就画出了椭圆,用椭圆来拟合二值化图。

 

 

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐