【问题标题】:Image filtering by dividing the image grids with blockproc in Matlab通过在 Matlab 中用 blockproc 划分图像网格进行图像过滤
【发布时间】:2013-03-22 17:32:16
【问题描述】:

我尝试将图像划分为相同大小的网格,并获得过滤器对这些网格的响应。每个网格的每个响应矩阵都需要单独获得。例如,如果我过滤和图像大小为 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);

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

【问题讨论】:

    标签: matlab grid filtering


    【解决方案1】:

    这就是我所做的

    % 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)
    

    【讨论】:

      猜你喜欢
      • 2019-10-04
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 2018-12-08
      相关资源
      最近更新 更多