使用 Python OpenCV 进行图像轮廓检测并绘制轮廓

本文将介绍如何使用 Python OpenCV 库进行图像轮廓检测,并绘制图像轮廓。

代码示例:

import cv2

# 读入彩色图片,用于绘制轮廓
img0 = cv2.imread('Fe.png')

# 读入灰度图,用于寻找轮廓
img = cv2.imread('Fe.png', 0)

# 使用阈值分割将图像转换为二值图像
ret, img = cv2.threshold(img, 140, 255, cv2.THRESH_BINARY)

# 在img上得到轮廓列表contours后,使用(0,255,0)颜色绘制在img0上
contours, hierarchy = cv2.findContours(img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

n = len(contours)
print('n =', n)

# 循环绘制每个轮廓
for i in range(1, n, 1):
    img0 = cv2.drawContours(img0, contours, i, (0, 255, 0), -1)
    cv2.waitKey(200)
    cv2.imshow('contours', img0)

cv2.waitKey(0)  # 等待按键输入
cv2.destroyAllWindows()  # 关闭所有窗口

解决边缘黑色区域无法选中问题:

原因: 这段代码中没有包含选择边缘黑色区域的功能,因此无法选中该区域。

解决方案:

可以使用鼠标交互或者其他图像处理方法来实现。例如,可以使用鼠标点击选取区域,然后使用 OpenCV 的图像处理函数提取该区域的轮廓。

总结:

本文展示了如何使用 Python OpenCV 进行图像轮廓检测和绘制。此外,还分析了边缘黑色区域无法选中的原因,并提供了解决方案。希望本文能够帮助您更好地理解 OpenCV 图像处理。


原文地址: https://www.cveoy.top/t/topic/mQ4C 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录