image - 如何在 matlab 中将图像从 double 转换为 uint8?

标签 image matlab image-processing

我有一个 I 类型的图像 double。我想将图像从 double 转换为 uint8。我试过同时使用两者:

  1. I=uint8(I)
  2. I=im2uint8(I)

当我使用 imshow(I) 命令时,我只得到一个黑色图像,没有其他任何东西。我做错了什么?

最佳答案

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);

关于image - 如何在 matlab 中将图像从 double 转换为 uint8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30757896/

相关文章:

java - 为 JAI API 加载图像

python - 如何比较两个彩色图像之间的相似性?

背景图像的 jquery 选择器

MATLAB:将 genpath 与部分路径结合使用

matlab - 如何找到二值图像线的交点?

opencv - 使用 Kinect 进行手指/手势识别

java - 将内存中的 Image 转换为 Blob

matlab - 如何在 Matlab 中绘制 3D 网格(立方体)

matlab - Matlab 中有空设备吗?

algorithm - 最简单公式中的多 channel 盲解卷积 : how to solve?