我正在开展一个项目,我必须首先对图像进行标准化,即将图像的像素范围从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);
答案 0 :(得分:3)
您idwt
的结果似乎是double
(或single
),而不是int
。转换为uint8
,然后转换为imshow
。
尝试imshow
double
/ single
类型的图片会使值大于1.0的所有像素饱和(而不是类型为int
的图像的255)。< / p>