这里提供一种基于OpenCV库的实现方式:

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 转换颜色空间为HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# 定义红色区域的范围
lower_red = (0, 50, 50)
upper_red = (10, 255, 255)
mask1 = cv2.inRange(hsv, lower_red, upper_red)

lower_red = (170, 50, 50)
upper_red = (180, 255, 255)
mask2 = cv2.inRange(hsv, lower_red, upper_red)

# 将两个mask相加
mask = cv2.add(mask1, mask2)

# 查找轮廓
contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 遍历轮廓
for contour in contours:
    # 计算轮廓的面积
    area = cv2.contourArea(contour)
    if area > 1000:
        # 获取轮廓的外接矩形
        x, y, w, h = cv2.boundingRect(contour)
        # 裁剪图像
        crop_img = img[y:y+h, x:x+w]
        # 显示裁剪后的图像
        cv2.imshow('crop_img', crop_img)
        cv2.waitKey(0)
        cv2.destroyAllWindows()

该代码通过将图像转换为HSV颜色空间,利用颜色范围提取出红色区域的mask,再通过findContours函数查找轮廓,计算轮廓面积,筛选出面积大于1000的矩形区域,获取该矩形的外接矩形,最后裁剪图像并显示裁剪后的结果

写一段python代码需要实现功能:检测出图像中的红色矩形并裁剪该区域

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

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