快速计算网格上的直方图

use*_*372 2 grid matlab histogram

我有一个灰度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
Run Code Online (Sandbox Code Playgroud)

Juh*_*uhl 5

如果您有图像处理工具箱,则可以使用该函数blockproc,该函数是循环的已编译和通用版本.只需将回调函数定义为直方图计算.

B = blockproc(I, [8 8], @myhistfun)
Run Code Online (Sandbox Code Playgroud)