我有图像需要分成块,然后为每个块计算直方图。我认为最好的方法是使用 blockproc() 函数计算每个块的直方图,但直方图是一个向量,我想将它存储在第三维中,以便更快地进行进一步的计算。
例如,我有 1024*1024px 的图像,我将其划分为 64*64px 的块,并使用 hist() 计算直方图。所以 blockproc 应该返回一个 16*16 的矩阵。但是鉴于 hist() 返回一个我想要存储的向量,我想让 blockproc() 返回一个 16*16*256 矩阵,第三维是我的直方图的 256 个值。
我当前的代码是:
function [ counts ] = getHist( block )
[counts,]=hist(block.data, 0:255);
end
HistA = blockproc(lbpA, [64 64], @(block_struct) getHist(block_struct));
但它返回 (16*256) 乘以 1024 矩阵。
我怎么能做到这一点?
谢谢!