如何在OpenCV Python中检查图像轮廓是否凸?
函数 cv2.isContourConvex() 用于检查曲线(轮廓)是否凸。图像中的一个对象的轮廓是一条连接所有沿边界连续的点的曲线,具有相同的颜色或强度。轮廓用于形状分析、目标检测和识别等方面。
语法
cv2.isContourConvex() 的语法如下−
“ cnt ”是图像中一个对象的轮廓点的numpy数组。如果轮廓cnt是凸的,则返回 True ,否则返回 False 。
步骤
你可以按照以下步骤检查图像中的轮廓是否凸实现−
导入所需的库。在以下所有Python示例中,所需的Python库是 OpenCV 。确保您已经安装了它。
使用 cv2.imread() 读取输入图像并将其转换为灰度图像。
对灰度图像应用阈值处理,以创建二进制图像。
使用 cv2.findContours() 函数查找图像中的轮廓。
使用 cv2.isContourConvex(cnt) 计算凸性。如果轮廓是凸的,则返回 True ,否则返回false。
在输入图像上绘制轮廓。
打印图像中一个对象的轮廓的凸性。
让我们举几个示例,以更好地理解。
示例1
在下面的Python示例中,我们检查一个矩形的轮廓是否凸。
输出
输出如下 −
这个程序将使用以下图像作为输入文件。
输出
当执行后,控制台将输出以下内容 −
然后我们得到以下窗口,显示输出 −