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


对于图像分析的目的是使用Opencv(开放源代码计算机视觉库)python库。安装opencv后需要导入的库名是cv2。

在下面的示例中,我们在图像文件中查找轮廓。轮廓帮助我们识别图像中出现的形状。轮廓被定义为图像边界上所有具有相同强度的点的连接线。OPenCV中的findContours函数帮助我们识别轮廓。类似地,drawContours函数帮助我们绘制轮廓。以下是它们二者语法。

语法

cv.FindContours(image, mode=CV_RETR_LIST, method=CV_CHAIN_APPROX_SIMPLE)
Where
image is the name of the image
Mode is Contour retrieval mode
Method is Contour approximation method

cv.DrawContours(img, contours, contourIdx, colour, thickness)
Where
image is the name of the image
contours – All the input contours.
contourIdx – Parameter indicating a contour to draw. If it is negative, all the contours are drawn.
color – Color of the contours
thickness is how thick are the lines drawing the contour

示例

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

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

示例

import cv2
# Load an image
image = cv2.imread(“path to image file”)
# Changing the colour-space
LUV = cv2.cvtColor(image, cv2.COLOR_BGR2LUV)
# Find edges
edges = cv2.Canny(LUV, 10, 100)
# Find Contours
contours, hierarchy = cv2.findContours(edges,cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
# Find Number of contours
print("Number of Contours is: " + str(len(contours)))
# Draw yellow border around two contours
cv2.drawContours(image, contours, 0, (0, 230, 255), 6)
cv2.drawContours(image, contours, 2, (0, 230, 255), 6)
# Show the image with contours
cv2.imshow('Contours', image)
cv2.waitKey(0)

运行上面的代码会得到以下结果 -

输出

Number of Contours found = 3

然后我们得到下图,显示输出。

更新于: 20-Dec-2019

2K+ 阅读

开启你的 职业生涯

通过完成课程取得认证

开始
广告