Здравствуйте. Я просто пытался создать код для настройки изображения в градациях серого в виде трехканального формата изображения, а затем отобразить его. Я использую функцию 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 для моего изображения. Я тестировал изображение оператора и не испытывал проблем