如何将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
相关产品推荐
相关产品推荐

