使用 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
我们得到下面的显示输出的图表。