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

如何将OpenCV生成的白色掩码改为红色等其他颜色?

实现红色掩码的修改方案

原代码生成的是单通道二值掩码(白色为255,黑色为0),要得到红色掩码,需要将单通道掩码转换为三通道彩色图像,并把原白色区域替换为红色(OpenCV采用BGR色彩空间)。

修改后的代码如下:

import cv2
import numpy as np

# 读取灰度图像(保持原逻辑,若原图像是彩色可改为cv2.imread('image1.png')后转灰度)
image1 = cv2.imread('image1.png', 0)
light_color = 100
dark_color = 200
mask_1 = cv2.inRange(image1, light_color, dark_color)

# 创建与原图像同尺寸的三通道黑色画布
red_mask = np.zeros((image1.shape[0], image1.shape[1], 3), dtype=np.uint8)
# 将掩码中白色区域(值为255)设置为红色(BGR格式:(0, 0, 255))
red_mask[mask_1 == 255] = (0, 0, 255)

cv2.imshow('red_mask', red_mask)
cv2.waitKey(0)
cv2.destroyAllWindows()

关键说明:

  • 原mask_1是单通道二值图,仅包含黑(0)、白(255)两种像素值。
  • 通过np.zeros创建三通道黑色图像,确保画布尺寸与原图像一致。
  • 利用布尔索引mask_1 == 255定位原白色区域,将对应位置的像素设置为红色。若需要其他颜色,只需替换(0, 0, 255)为对应BGR值即可(例如绿色为(0, 255, 0),蓝色为(255, 0, 0))。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 06:29:55