在MATLAB中连接直方图

时间:2014-06-25 22:46:19

标签: matlab image-processing

我是MATLAB的新手。我有6个直方图,它们是通过将图像细分为补丁而创建的。如何合并这些补丁以制作一个直方图(即连接6个直方图)?

我试过这段代码:

subplot(3,4,1) 
imhist(Patch1)
subplot(3,4,2) 
imhist(Patch2)
subplot(3,4,3) 
imhist(Patch3)
subplot(3,4,4) 
imhist(Patch4)

1 个答案:

答案 0 :(得分:0)

您可以将所有补丁连接到一个向量中,然后在此向量上调用imhist。您提到当您的代码仅显示时,您有直方图。因此,我将假设其他直方图来自Patch5Patch6。知道这一点,代码就是:

patch = [Patch1(:); Patch2(:); Patch3(:); Patch4(:); Patch5(:); Patch6(:)];
imhist(patch);

直方图与您正在查看的图像尺寸无关。它只计算您使用的每个数据强度级别遇到的像素数。因此,我们可以简单地将每个贴片的所有这些像素放入单个矢量中,并对该矢量进行直方图。这将很好地工作,因为这将忽略每个补丁的尺寸,因此我们不必构建新图像并对新构建的图像进行直方图。