Python灰度图像到RGB

问题描述 投票:0回答:1

我有一个灰度图像作为具有以下属性的numpy数组

shape = ( 3524, 3022), dtype = float32, min = 0.0, max = 1068.16

绘制为plt.imshow( gray, cmap = 'gray, vmin = 0, vmax = 80)的灰色图像看起来像,

enter image description here

并且我想将其转换为RGB。我尝试了几种方法,例如np.stack,cv2.merge,cv2.color创建3D np.zeros图像,并将灰度图像分配给每个通道。当我绘制3D图像时,我得到的是[[非常暗的图像,根本看不到“斑点”。我也尝试过将其范围转换为[0,1]或[0,255]范围,无法使用。

使用np.stack plt.imshow( np.stack(( new,)*3, axis = 2)),我明白了,

enter image description here

我该怎么办?预先感谢!

python opencv matplotlib grayscale imshow
1个回答
0
投票
通过将vmin=0,vmax=80传递到plt.imshow,您基本上可以裁剪图像并重新缩放。因此,您可以这样做:

gray_normalized = gray.clip(0,80)/80 * 255 # stack: rgb = np.stack([gray_normalized]*3, axis=2) cv2.imwrite('output.png', gray_normalized)

© www.soinside.com 2019 - 2024. All rights reserved.