2013-03-22 63 views
0

我嘗試將圖像劃分爲相同大小的網格,並獲得濾波器在這些網格上的響應。每個網格的每個響應矩陣需要分別獲得。例如,如果我正在過濾圖像尺寸爲500x500,網格尺寸爲100x100,則比我需要獲得尺寸爲100x100的5 * 5 = 25個不同的響應矩陣。我怎麼能在Matlab上做到這一點?通過在Matlab中將圖像網格與blockproc分開進行圖像過濾

我已經嘗試過blockproc,但它並沒有給每個圖像網格單獨的響應,而是它網格化圖像並運行過濾器,並提供了更大的響應向量。這裏是我用於blockproc的代碼

fun = @(x) imfilter(x.data,filter,'conv'); 
img_res=blockproc(img,[100 100],fun,'UseParallel',1,'TrimBorder',1,'PadPartialBlocks',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)