Если у вас есть набор инструментов для обработки изображений, вы можете использовать blkproc для обработки nxm блоков вашего изображения с использованием пользовательских функций. Вот пример
function Ip = imageProcessed(II,blockSize)
% FUNCTION imageProcessed calculates average value of blocks of size nxm
% blocks
if nargin<2,
% default/example value for block size
blockSize = [3 4];
end
if size(II,3)>1,
% blkproc requires a grayscale image
% convert II to gray scale if it is RGB.
II=rgb2gray(II)
end
% Custom average function.
myAveFun = @(x) ones(size(x))*sum(x(:))/length(x(:));
% use blkproc to process image
Ip = blkproc(II,[blockSize(1), blockSize(2)],myAveFun);
end
Примечание:
Начиная с пакета инструментов обработки изображений MATLAB 2009b, blkproc устарел и заменен на blockproc (см. R2099b section здесь ) Таким образом, последние две строки могут быть изменены на:
myAveFun = @(blkstrct) ones(size(blkstrct.data))*mean(blkstrct.data(:))
Ip = blockproc(II,blockSize,myAveFun);