要在OpenCV中识别图像中的一个红色矩形并输出该矩形的坐标,可以按照以下步骤进行:

  1. 导入必要的库:
import cv2
import numpy as np
  1. 读取图像并转换为HSV颜色空间:
image = cv2.imread('image.jpg')
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
  1. 定义红色的HSV范围:
lower_red = np.array([0, 100, 100])
upper_red = np.array([10, 255, 255])
  1. 根据红色的HSV范围创建一个掩膜:
mask = cv2.inRange(hsv_image, lower_red, upper_red)
  1. 对掩膜进行形态学操作,以消除噪点:
kernel = np.ones((5, 5), np.uint8)
mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
  1. 在掩膜中寻找轮廓:
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
  1. 遍历轮廓并筛选出矩形:
for contour in contours:
    x, y, w, h = cv2.boundingRect(contour)
    if w > 50 and h > 50:  # 筛选出宽高均大于50的矩形
        cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)  # 绘制矩形
        print("矩形坐标:", (x, y, x+w, y+h))
  1. 显示输出的图像:
cv2.imshow('Output Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

注意:以上代码假设图像中只有一个红色矩形。如果图像中有多个红色矩形,可以根据需要进行修改

open cv2中识别图像中的一个红色矩形并输出该矩形的坐标

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

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