You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Python 3.9+OpenCV 4.6提取指定图像区域的技术求助

实现红色贴纸的Bounding Box分割(OpenCV 4.6.0 + Python 3.9)

针对你需要从图像中自动分割红色贴纸的需求,以下是基于OpenCV的具体实现方案,对应你方案A的第一步:

核心逻辑

红色在HSV颜色空间分为两个区间(低色相和高色相),先通过颜色阈值提取红色区域的掩码,再通过轮廓检测获取每个贴纸的外接矩形,最终得到每个贴纸的bounding box。

分步实现代码及说明

import cv2
import numpy as np

# 1. 读取原始图像(替换为你的图像路径)
img = cv2.imread("your_original_image.png")
# 转换为HSV颜色空间,比BGR更适合颜色筛选
hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# 2. 定义红色的HSV阈值范围,覆盖所有红色色调
# 低色相红色(偏橙红)
lower_red1 = np.array([0, 120, 70])
upper_red1 = np.array([10, 255, 255])
# 高色相红色(偏紫红)
lower_red2 = np.array([170, 120, 70])
upper_red2 = np.array([180, 255, 255])

# 生成红色区域掩码,合并两个区间的结果
mask_red1 = cv2.inRange(hsv_img, lower_red1, upper_red1)
mask_red2 = cv2.inRange(hsv_img, lower_red2, upper_red2)
red_mask = cv2.bitwise_or(mask_red1, mask_red2)

# 3. 形态学操作去除噪点,让红色区域更连贯
# 闭操作(膨胀+腐蚀)填补区域内的小孔,开操作(腐蚀+膨胀)消除外围小噪点
kernel = np.ones((5, 5), np.uint8)
red_mask = cv2.morphologyEx(red_mask, cv2.MORPH_CLOSE, kernel)
red_mask = cv2.morphologyEx(red_mask, cv2.MORPH_OPEN, kernel)

# 4. 检测轮廓并筛选有效贴纸
# 只检测最外层轮廓,压缩轮廓点
contours, _ = cv2.findContours(red_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 过滤掉过小的噪点轮廓(根据你的贴纸大小调整面积阈值)
min_sticker_area = 500
for contour in contours:
    area = cv2.contourArea(contour)
    if area > min_sticker_area:
        # 获取轮廓的外接矩形
        x, y, width, height = cv2.boundingRect(contour)
        # 在原始图像上绘制绿色的bounding box(线宽2)
        cv2.rectangle(img, (x, y), (x + width, y + height), (0, 255, 0), 2)

# 5. 保存或显示结果
cv2.imwrite("result_with_bounding_boxes.png", img)
cv2.imshow("Red Stickers with Bounding Boxes", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

关键参数调整提示

  • HSV阈值:如果红色区域提取不全或误检其他颜色,可微调120(饱和度下限)和70(亮度下限),也可扩展色相范围(比如把10改成15,170改成165)。
  • 轮廓面积阈值:min_sticker_area需要根据你的贴纸实际大小调整,确保只保留贴纸轮廓,过滤掉灰尘、小色块等噪点。
  • 形态学核大小:如果图像噪点多,可把(5,5)的核改成(7,7);如果贴纸细节精细,可改成(3,3)。

内容的提问来源于stack exchange,提问作者user20030253

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 05:06:02