OpenCV 中如何绘制轮廓?

推荐答案

在 OpenCV 中,绘制轮廓通常使用 cv2.drawContours() 函数。以下是一个简单的示例代码:

-- -------------------- ---- -------
------ ---
------ ----- -- --

- ----
----- - ----------------------- ---------------------

- -----
-- ------ - -------------------- ---- ---- ------------------

- ----
--------- - - ------------------------ -------------- ------------------------

- --------------
------------ - ------------------------- --------------- --- ---------------

- ----
------------------------------ --------- --- --- ---- --- --

- ----
---------------------- -------------
--------------
-----------------------

本题详细解读

1. 读取图像

首先,使用 cv2.imread() 函数读取图像。为了简化轮廓检测,通常将图像转换为灰度图像。

2. 二值化处理

使用 cv2.threshold() 函数对图像进行二值化处理。二值化是将图像转换为黑白图像的过程,便于后续的轮廓检测。

3. 查找轮廓

使用 cv2.findContours() 函数查找图像中的轮廓。该函数返回两个值:轮廓列表和层次结构。轮廓列表是一个包含所有轮廓的列表,每个轮廓是一个点的数组。

4. 创建空白图像

为了在原始图像上绘制轮廓,通常创建一个空白的三通道图像(彩色图像),以便绘制彩色轮廓。

5. 绘制轮廓

使用 cv2.drawContours() 函数绘制轮廓。该函数的参数包括:

  • image: 要绘制轮廓的图像。
  • contours: 轮廓列表。
  • contourIdx: 要绘制的轮廓索引,-1 表示绘制所有轮廓。
  • color: 轮廓的颜色,通常使用 BGR 格式。
  • thickness: 轮廓线的厚度。

6. 显示结果

最后,使用 cv2.imshow() 函数显示绘制了轮廓的图像,并使用 cv2.waitKey()cv2.destroyAllWindows() 函数等待用户关闭窗口。

纠错
反馈