📅  最后修改于: 2023-12-03 15:06:49.392000             🧑  作者: Mango
在计算机视觉领域中,图像轮廓是非常重要的概念之一。轮廓可以被看作是图像的边界,它可以帮助我们检测物体、进行图像分割和形状分析等。在 Python 中,我们可以使用 OpenCV 库来查找图像的轮廓坐标。下面就是一份实现示例:
import cv2
import numpy as np
img = cv2.imread('example.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0, 0, 255), 2)
cv2.imshow('Contours', img)
cv2.waitKey(0)
以上代码中,我们通过以下步骤实现了轮廓的查找:
cv2.findContours
函数查找轮廓,返回轮廓的坐标;cv2.drawContours
函数绘制轮廓并显示图像。需要注意的是,cv2.findContours
函数的三个参数分别是:
image
:输入的二值图像;mode
:轮廓提取模式;method
:轮廓近似方法。在上面的代码中,我们使用 cv2.RETR_TREE
和 cv2.CHAIN_APPROX_SIMPLE
作为参数。其中,cv2.RETR_TREE
表示提取所有轮廓并建立轮廓之间的层次结构;cv2.CHAIN_APPROX_SIMPLE
表示压缩水平、垂直和对角线方向上的所有轮廓点,使轮廓点更少,从而更容易处理。
另外,cv2.drawContours
函数的四个参数分别是:
image
:需要绘制轮廓的图像;contours
:要绘制的轮廓;contourIdx
:轮廓的索引;color
:轮廓的颜色;thickness
:轮廓的线条宽度。以上就是使用 OpenCV 查找轮廓坐标的 Python 实现示例。轮廓坐标的查找是计算机视觉中重要的基础操作,也是进行目标检测、图像分割等任务的基础。希望这份示例代码能够帮助你更好地理解和运用这个概念。