0

我尝试将图像划分为相同大小的网格,并获得过滤器对这些网格的响应。每个网格的每个响应矩阵都需要单独获得。例如,如果我过滤和图像大小为 500x500,网格大小为 100x100,则我需要获得 5*5 = 25 个大小为 100x100 的不同响应矩阵。我怎么能在 Matlab 上做到这一点?

我已经尝试过 blockproc,但它没有为每个图像网格提供单独的响应,而是对图像进行网格化并运行过滤器并给出更大的响应向量。这是我用于 blockproc 的代码

fun = @(x)  imfilter(x.data,filter,'conv');
img_res=blockproc(img,[100 100],fun,'UseParallel',1,'TrimBorder',1,'PadPartialBlocks',1);

我可以按照我的建议去做吗?有什么建议吗?

4

1 回答 1

0

这是我所做的

% step 1 divide into blocks
szM = size(image)
nb = szM ./ grid_size % number of blocks in each dimension
C = mat2cell(image,repmat(grid_size(1),1,nb(1)), repmat(grid_size(2),1,nb(2)))

% step 2: do something for each block (here MIN)
C2 = cellfun(@(x) min(x(:)), C, 'un', 0)
M2 = cell2mat(C2)
于 2013-03-22T09:32:16.123 回答