Как преобразовать изображение из double в uint8 в matlab?
у меня есть картинка I
типа double
. Я хочу преобразовать изображение из double
to uint8
. Я пробовал использовать оба:
-
I=uint8(I)
-
I=im2uint8(I)
.
когда я использую imshow(I)
команда, я получаю только черное изображение и ничего больше. Что я делаю не так?
1 ответов
The im2uint8
функция предполагает, что double
изображение масштабируется в диапазоне [0,1]
. Если ваше изображение имеет значения больше, чем 1
или меньше 0
, эти значения будут обрезаны. Рассмотрим следующий пример:
im2uint8([-1 0 0.5 1 2])
ans =
0 0 128 255 255
раствор для масштабирования входного изображения к [0,1]
путем вычитания минимального значения и деления на общий диапазон:
I = (I - min(I(:))) / (max(I(:)) - min(I(:)));
I = im2uint8(I);
imshow(I);