如何使用OpenCV Python在图像中检测三角形?
要在图像中检测三角形,我们首先要检测图像中的所有轮廓。然后我们循环处理所有的轮廓,找到每个轮廓的近似轮廓。如果近似轮廓中的顶点点数为3,则将轮廓涂上颜色,并标记为三角形。请参见下面的伪代码。
步骤
您可以使用以下步骤来检测输入图像中的三角形−
导入所需的库。在以下所有Python示例中,所需的Python库为 OpenCV 。请确保您已经安装了它。
使用 cv2.imread() 读取输入图像,并将其转换为灰度图像。
在灰度图像上应用阈值处理以创建二进制图像。调整第二个参数以获得更好的轮廓检测。
使用 cv2.findContours() 函数在图像中找到轮廓。
从轮廓列表中选择一个轮廓(比如第一个轮廓)cnt,或循环处理所有的轮廓。
使用 cv2.approxPolyDP() 函数计算每个轮廓 cnt 的近似轮廓点。
如果近似轮廓中的顶点点数是3,则在图像上绘制该轮廓,并将其设置为三角形。
显示具有绘制轮廓和近似轮廓的图像。
让我们来看几个例子以更好地理解。
例1
在下面的Python代码中,我们检测输入图像中的三角形。
我们将使用以下图像作为 输入文件 在上述程序代码中−
输出
当您执行上述代码时,它将在控制台上产生以下 输出 −
并且我们得到以下窗口,显示了 输出 −
在上述输出图像中,检测出一个三角形。
示例2
在此示例中,我们将展示如何在图像中检测多个三角形。
我们得到以下窗口,显示输出−
在上述输出图像中,我们检测到了四个三角形。