以下代码使用 Python OpenCV 库进行图像处理,包括图像读取、二值化、轮廓检测和外接矩形计算。

image = cv2.imread('new_file_path', 0)
ret, thresh1 = cv2.threshold(image, 30, 255, cv2.THRESH_BINARY)
contours, hierarchy = cv2.findContours(thresh1, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
x, y, w, h = cv2.boundingRect(cont)

代码解释:

  1. 读取图像并转换为灰度图像:

    • image = cv2.imread('new_file_path', 0): 使用 cv2.imread() 函数读取名为 'new_file_path' 的图像,参数 0 指定读取为灰度图像,并将结果保存在变量 image 中。
  2. 二值化处理:

    • ret, thresh1 = cv2.threshold(image, 30, 255, cv2.THRESH_BINARY): 使用 cv2.threshold() 函数对图像进行二值化处理。参数说明:
      • image: 待处理的灰度图像。
      • 30: 阈值,大于该值的像素设置为 255,小于等于该值的像素设置为 0。
      • 255: 最大值,设置为 255 代表白色。
      • cv2.THRESH_BINARY: 二值化类型,将像素值大于阈值的设置为最大值,小于阈值的设置为 0。
    • 返回值 ret 为阈值,thresh1 为二值化后的图像。
  3. 轮廓检测:

    • contours, hierarchy = cv2.findContours(thresh1, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE): 使用 cv2.findContours() 函数在二值化后的图像 thresh1 中寻找轮廓。参数说明:
      • thresh1: 二值化后的图像。
      • cv2.RETR_LIST: 轮廓检索模式,表示检索所有轮廓,不建立层次结构。
      • cv2.CHAIN_APPROX_SIMPLE: 轮廓近似方法,使用最少点数表示轮廓。
    • 返回值 contours 为轮廓列表,hierarchy 为轮廓的层次结构信息。
  4. 计算外接矩形:

    • x, y, w, h = cv2.boundingRect(cont): 使用 cv2.boundingRect() 函数计算轮廓 cont 的最小外接矩形,并返回矩形的左上角坐标 (x, y) 和宽度 w、高度 h。

本代码示例演示了使用 Python OpenCV 库进行图像处理的基本操作,包括图像读取、二值化、轮廓检测和外接矩形计算。这些操作在图像识别、目标检测等领域有着广泛的应用。

Python OpenCV 图像处理:二值化、轮廓检测及外接矩形

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

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