gusucode.com > 精通Matlab数字图像处理与识别源码程序 > 精通Matlab数字图像处理与识别源码程序/chapter12/code/LBP/getLBPHist.m
function histLBP = getLBPHist(I, r, c, nMB) % 取得I的分区 LBP 直方图 % % 输入:r,c --- 了分区的数目,r*c个分区 % nMB --- MB-LBP 中块的大小 % % 返回值:histLBP --- 连接 I 的各个分块的LBP直方图而形成的代表 I 的LBP复合特征向量 [m n] = size(I); % 计算分区的大小 mPartitionSize = floor(m / r); nPartitionSize = floor(n / c); for ii = 1:r-1 for jj = 1:c-1 Sub = I( (ii-1)*mPartitionSize+1:ii*mPartitionSize, (jj-1)*nPartitionSize+1:jj*nPartitionSize ); % hist{ii}{jj} = getMBLBPFea( Sub, nMB ); hist{ii}{jj} = getMBLBPFea_33( Sub, nMB ); end end % 处理最后一行和最后一列 clear Sub for ii = 1:r-1 Sub = I( (ii-1)*mPartitionSize+1:ii*mPartitionSize, (c-1)*nPartitionSize+1:n ); % hist{ii}{c} = getMBLBPFea(Sub, nMB); hist{ii}{c} = getMBLBPFea_33( Sub, nMB ); end clear Sub for jj = 1:c-1 Sub = I( (r-1)*mPartitionSize+1:m, (jj-1)*nPartitionSize+1:jj*nPartitionSize ); % hist{r}{jj} = getMBLBPFea(Sub, nMB); hist{r}{jj} = getMBLBPFea_33( Sub, nMB ); end clear Sub Sub = I((r-1)*mPartitionSize+1:m, (c-1)*nPartitionSize+1:n); %hist{r}{c} = getMBLBPFea(Sub, nMB); hist{r}{c} = getMBLBPFea_33( Sub, nMB ); % 连接各个分块的LBP直方图形成复合特征向量 histLBP = zeros(1, 0); for ii = 1:r for jj = 1:c histLBP = [histLBP hist{ii}{jj}]; end end