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

如何从HSV图像的Value通道中筛选红色区域并将其余部分设为白色

解决方案

实现需求的核心逻辑:红色像素的判定必须依赖Hue、Saturation两个通道的阈值,Value通道仅作为最终修改的目标对象,单通道掩码和单通道Value通道维度完全匹配,你遇到的维度报错是赋值逻辑错误导致的,可按以下步骤修改:

  1. 沿用原有逻辑基于完整HSV图像生成红色区域掩码
  2. 拆分出独立的V通道,仅将非红色区域的V值设置为255(Value通道最大值对应白色)
  3. 如需输出最终可视化图像,将修改后的通道合并后转回BGR色彩空间即可
完整可运行代码
import cv2
import numpy as np

# 读入原始BGR图像
img = cv2.imread('zg4515ah.png')

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

# 生成红色区域掩码,判定逻辑沿用原有阈值即可
lower_red = np.array([155,25,0])
upper_red = np.array([179,255,255])
mask = cv2.inRange(img_hsv, lower_red, upper_red)

# 拆分HSV三个独立通道
h, s, v = cv2.split(img_hsv)

# 仅修改V通道:非红色区域设为255(白色),红色区域保留原有V值
v[mask == 0] = 255

# ------------ 可选操作:生成最终可视化图像 ------------
# 合并修改后的通道
img_hsv_modified = cv2.merge((h, s, v))
# 转回BGR格式用于显示或保存
img_result = cv2.cvtColor(img_hsv_modified, cv2.COLOR_HSV2BGR)

# 显示/保存结果
cv2.imshow('result', img_result)
cv2.waitKey(0)
cv2.destroyAllWindows()
# cv2.imwrite('result.png', img_result)

# ------------ 可选操作:单独输出处理后的V通道图像 ------------
# cv2.imshow('modified_v_channel', v)
# cv2.waitKey(0)

内容的提问来源于stack exchange,提问作者Michael Kročka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:45:03