如何使用OpenCV Python计算图像对象的范围?
对象的范围被计算为轮廓面积与其边界矩形面积的比率。因此,为了计算范围,我们首先必须找到轮廓面积和边界矩形面积。可以使用cv2.contourArea()函数找到对象的轮廓面积。
语法
如下所示可以计算范围 –
这里,“ cnt ”是图像中对象轮廓点的numpy数组。
步骤
您可以使用以下步骤计算图像中对象的范围 –
导入所需的库。在接下来的所有Python示例中,所需的Python库为 OpenCV 。请确保您已经安装了它。
使用 cv2.imread() 读取输入图像并将其转换为灰度。
对灰度图像进行阈值处理,创建二进制图像。调整第二个参数以更好地检测轮廓。
使用 cv2.findContours() 函数在图像中查找轮廓。
选择轮廓“ cnt ”或循环遍历所有轮廓。将范围计算为轮廓面积与边界矩形面积的比率。
可以选择在输入图像上绘制轮廓和边界矩形。还在图像上将范围作为文本显示。
打印计算出的范围,并显示带有绘制的轮廓、边界矩形的图像。
下面看一些示例,以获得更好的理解。
示例1:
在此Python程序中,我们计算图像中对象的范围。我们在图像上为对象绘制轮廓和边界矩形。我们还将范围值作为对象的文本。
我们将使用以下图像作为程序中的 输入文件 −
输出
当我们执行上面的代码时,它将生成以下输出 −
并且我们得到以下的输出窗口 −
轮廓用绿色绘制,边界矩形用蓝色绘制。检测到的对象的范围用红色写出。
示例2
在这个Python程序中,我们计算图像中多个对象的范围。我们在图像上绘制轮廓和边界矩形。我们还将所有对象的范围作为文本放置在上面。
我们将使用以下图像作为此程序的输入文件 –
输出
当我们执行上面的代码时,它将产生以下输出 –
我们得到以下输出window −
轮廓用绿色绘制,边界矩形用黄色绘制。检测到的对象的范围用红色书写。