【发布时间】:2019-06-11 00:22:50
【问题描述】:
您好,我只是想编写一个代码来将灰度图像设置为三通道图像格式,然后显示它。我正在使用 skimage.color 函数 gray2rgb ,它确实改变了单比例图像矩阵的形状。但是,当想要绘制该转换的结果时,我得到了一个意想不到的图像作为输出。
我也很难创建一个空的 3 通道图像来填充我想要的任何单尺度信息。显然由于图像的性质为 uint16,matplotlib 存在一些问题
我已经尝试过 np.vstack、skimage.color.gray2rgb。它们都产生相同的输出。 我尝试使用 np.uint8 将最大像素值从 65535 转换为 255,但它不起作用。看来除法是有效的
from skimage.io import imread, imshow
import matplotlib.pyplot as plt
import os
import numpy as np
img = imread('516.jpg')
img_uint8 = np.uint8(img)
from skimage.color import gray2rgb
from skimage import img_as_float
img_rgb = gray2rgb(img_uint8, alpha=None)
print(img_rgb.shape)
plt.imshow(img_rgb)
显示的图像不是预期的!!!!
我希望图像类似于原始图像,但可能具有不同的颜色,因为它应该是所有 3 个通道中的相同图像。 我认为问题出在我的图像的 np.uint8 上。我用摄影师图像测试过,没有问题
【问题讨论】:
-
在转换为 uint8 之前需要除以 256。
-
由于这是我的第一个贡献,您可以从我的谷歌驱动器下载图像:drive.google.com/file/d/124CNKFp1RSbjRkPfj64YTFg76A0SCIp1/…
标签: image-processing grayscale