使用OpenCV查找图像中的轮廓
本文将介绍如何使用OpenCV在图像中查找轮廓。OpenCV是一个强大的计算机视觉库,它提供了许多函数和工具来处理图像。其中一个任务就是查找图像中的轮廓。
首先,我们需要导入OpenCV库,并读取一张图片:
import cv2
img = cv2.imread('image.jpg')
接下来,我们将图片转换为灰度图像,因为在灰度图像上查找轮廓更容易:
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
然后,我们可以使用Canny边缘检测算法来检测图像中的轮廓:
edges = cv2.Canny(gray, 50, 150)
这里,我们将Canny算法的两个参数设置为50和150。这些参数的调整会影响到最终轮廓的检测结果。
现在,我们可以使用cv2.findContours函数来查找图像中的轮廓。这个函数返回两个值:图像的轮廓和层次结构。
contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
这里,我们使用了RETR_EXTERNAL模式来查找最外层的轮廓,使用CHAIN_APPROX_SIMPLE模式来压缩轮廓。
最后,我们可以在原始图像上绘制轮廓:
cv2.drawContours(img, cont