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

如何使用Python OpenCV将黑白灰度图像转换为BGR格式

灰度图像转OpenCV BGR格式实现方法

你对OpenCV图像矩阵存储结构的认知是正确的:单通道灰度图为H×W二维矩阵,BGR格式彩色图为H×W×3三维矩阵。灰度转BGR的核心逻辑是将单通道的灰度值复制到B、G、R三个通道,三个通道数值相同时视觉上仍为灰度效果,但格式符合BGR的三通道规范。


方法1:调用OpenCV内置转换接口(最常用)

直接使用OpenCV封装好的色彩空间转换函数即可完成转换,代码示例如下:

import cv2

# 读入灰度图,得到shape为 (高度, 宽度) 的二维矩阵
img_gray = cv2.imread("test_gray.jpg", cv2.IMREAD_GRAYSCALE)

# 灰度转BGR
img_bgr = cv2.cvtColor(img_gray, cv2.COLOR_GRAY2BGR)

# 验证转换结果:输出为 (高度, 宽度, 3)
print(img_bgr.shape)

方法2:手动矩阵拼接(适合理解底层逻辑)

基于numpy的矩阵操作直接拼接三个相同的灰度通道,效果和内置接口完全一致:

import cv2
import numpy as np

img_gray = cv2.imread("test_gray.jpg", cv2.IMREAD_GRAYSCALE)
# 沿最后一个维度堆叠3个灰度矩阵,得到三通道BGR格式
img_bgr = np.stack([img_gray]*3, axis=-1)

常见使用场景说明

转换后的BGR格式灰度图可以直接适配所有OpenCV的彩色图像处理操作,比如在图上绘制彩色框、添加彩色文字等,不会出现通道不匹配的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 00:06:03