推荐答案
在 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()
函数等待用户关闭窗口。