2016-11-27 135 views
1

我已经通过使用ii = cumsum(cumsum(image, 2), 1)来计算给定图像的积分图像;在我的课程中,这个问题让我画出了归一化的整体图像,这真让我困惑,因为大多数值都大于255,我会得到一个明亮的图像。那么如何绘制归一化的整体图像呢?归一化积分图像

+0

你能证明你所尝试过的吗? – rapvelopment

+0

我的答案也有帮助吗? – rayryeng

回答

0

只是简单地规范图像。它看起来像你使用MATLAB,所以才创建标准化之间0值的新形象 - 255:

ii_norm = 255*(ii - min(ii(:)))/(max(ii(:)) - min(ii(:))); 

操作首先假定您的[0,1]范围内的标准化,那么你就扩展到[0,255]后。由于要显示此为图像,不要忘记施放此为uint8

ii_norm = uint8(ii_norm); 

但是,您可以使用imagesc,使它们符合上述范围反正自动缩放值。但是,imagesc将使用以独特颜色对亮度进行着色的颜色贴图来显示图像。我怀疑你可能想自己显示实际强度值,所以你必须拨打colormap并将其设置为gray来执行此操作。此外,您可以使用imshow,第二个参数为空,以帮助您执行此比例缩放:imshow(ii, []); ...实际上,您甚至不需要对其进行缩放。如果你想将图像写入文件,你会。

只需简单地做:

imagesc(ii); colormap('gray'); 
% or 
%imshow(ii,[]); 

...和上面将自动缩放图像的[0,255][0,1]范围浮点的情况。

你应该期望的是一个图像的渐变渐变,其中左上角为0或接近于零,并且当您接近右下角时,图像开始增加强度,直至变为完全白色当你接近图像的右下角时。请记住,积分图像会计算从图像左上角到空间坐标(x,y)的区域。

此外,根据您的图像的大小积分图像值可能会很快填满,所以它可能会显示日志标准化强度图像以及有用:

imagesc(log(1 + ii)); colormap('gray'); 
% or 
imshow(log(1 + ii), []); 

这会给当您从左上角扫到右下角时,您可以获得更均匀的强度分布。