Как преобразовать изображение из 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);