【问题标题】:how to denormalize the image in matlab如何在matlab中对图像进行非规范化
【发布时间】:2015-05-14 20:18:42
【问题描述】:

我正在做一个项目,我必须首先对图像进行归一化,即将图像的像素范围从 16-235 转换(因为它只是图像的亮度分量,像素值始终定义在 16- 235) 到 0 - 1 然后我在处理后对图像执行 dwt 和 idwt 我想再次将这些像素值从 0 - 1 映射到 16 - 235。即如果像素值为 1 值,那么它应该存储在图像矩阵为 235。 为此我尝试了以下 matlab 代码,当我在标准化后立即对图像进行非标准化时,此代码工作得非常好,但如果我在执行 dwt 和 idwt 后使用此代码,则输出变为完全白色。

for j = 1:1:361
    for k=1:1:361                   %dimensions of my matrix
        if(distorted1(j,k)~=0)
            temp=distorted1(j,k);
            temp1=temp/0.0045;

            distorted1(j,k)=int8(temp1)+1;
        end
    end
end
imshow(distorted1);

【问题讨论】:

  • 您应该可视化图像imshow(distorted1,[]) 而不是imshow(distorted1)。如果double 的值超过1.0 的最大值,那么没有[] 的普通旧imshow 将饱和为白色。
  • 非常感谢,它成功了...

标签: image matlab image-processing normalization dwt


【解决方案1】:

您的 idwt 的结果似乎是 double (或 single )类型,而不是 int 了。转换为uint8,然后转换为imshow

尝试imshowdouble/single 类型的图像将使所有值大于 1.0 的像素(而不是 int 类型的图像的 255)饱和。

【讨论】:

    猜你喜欢
    • 2015-07-14
    • 1970-01-01
    • 2017-02-24
    • 2019-10-27
    • 2023-03-29
    • 2013-03-08
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多