查找轮廓并使用 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
然后我们得到下图,显示输出。
广告