我有一个 200x200 的灰度图像,我想计算图像中每个 8x8 窗口的强度直方图。我怎样才能计算得那么快?我现在使用 for 循环,但它太慢了。我当前的代码如下所示:
I = imread('image.jpg');
for i=1:8:height-7
for j=1:8:width-7
patch = I(i:i+7,j:j+7);
% compute histogram for the patch
end
end
最佳答案
如果您有图像处理工具箱,则可以使用函数 blockproc
这是循环的编译后的通用版本。只需将回调函数定义为您的直方图计算即可。
B = blockproc(I, [8 8], @myhistfun)
关于matlab - 网格上直方图的快速计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7070319/