使用 Python 中的 OpenCV 查找和绘制轮廓

pythonserver side programmingprogramming

为了进行图像分析,我们使用 Opencv(开源计算机视觉库)python 库。安装 opencv 后必须导入的库名称是 cv2。

在下面的例子中,我们找到了图像文件中存在的轮廓。轮廓帮助我们识别图像中存在的形状。轮廓被定义为连接图像边界上具有相同强度的所有点的线。OPenCV 中的 findContours 函数帮助我们识别轮廓。同样,drawContours 函数帮助我们绘制轮廓。以下是两者的语法。

语法

cv.FindContours(image, mode=CV_RETR_LIST, method=CV_CHAIN_APPROX_SIMPLE)
其中
image 是图像的名称
Mode 是轮廓检索模式
Method 是轮廓近似方法

cv.DrawContours(img, contours, contourIdx, colour, thick)
其中
image 是图像的名称
contours – 所有输入轮廓。
contourIdx – 表示要绘制的轮廓的参数。如果为负数,则绘制所有轮廓。
color –轮廓的颜色
厚度是绘制轮廓的线条有多粗

示例

在下面的例子中,我们使用下面的图像作为输入图像。然后运行下面的程序来获取它周围的轮廓。

我们可以在上图中找到三种形状。我们可以使用下面的程序在所有或部分轮廓周围绘制轮廓。

示例

import cv2
# 加载图像
image = cv2.imread(“path to image file”)
# 更改颜色空间
LUV = cv2.cvtColor(image, cv2.COLOR_BGR2LUV)
# 查找边缘
edges = cv2.Canny(LUV, 10, 100)
# 查找轮廓
contours, Hierarchy = cv2.findContours(edges,cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
# 查找轮廓数量
print("Number of Contours is: " + str(len(contours)))
# 在两个轮廓周围绘制黄色边框轮廓
cv2.drawContours(image, contours, 0, (0, 230, 255), 6)
cv2.drawContours(image, contours, 2, (0, 230, 255), 6)
# 显示带轮廓的图像
cv2.imshow('Contours', image)
cv2.waitKey(0)

运行上述代码得到以下结果 −

输出

Number of Contours found = 3

我们得到下面的显示输出的图表。


相关文章