如何在matlab中对图像进行非规范化

时间:2015-03-12 15:25:14

标签: image matlab image-processing normalization dwt

我正在开展一个项目,我必须首先对图像进行标准化,即将图像的像素范围从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);

1 个答案:

答案 0 :(得分:3)

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

尝试imshow double / single类型的图片会使值大于1.0的所有像素饱和(而不是类型为int的图像的255)。< / p>