dev*_*raj 6 matlab image image-processing
我有一个I
类型的图像double
.我想将图像转换double
为uint8
.我尝试过使用两者:
I=uint8(I)
I=im2uint8(I)
.当我使用imshow(I)
命令时,我只得到一个黑色图像而没有别的.我究竟做错了什么?
该im2uint8
功能假定您的double
图像缩放到该范围[0,1]
.如果图像的值大于1
或小于0
,则会剪切这些值.请参阅以下示例:
im2uint8([-1 0 0.5 1 2])
ans =
0 0 128 255 255
Run Code Online (Sandbox Code Playgroud)
解决方案是[0,1]
通过减去最小值并除以总范围来缩放输入图像:
I = (I - min(I(:))) / (max(I(:)) - min(I(:)));
I = im2uint8(I);
imshow(I);
Run Code Online (Sandbox Code Playgroud)