使用 MATLAB 将图像分成大小相等的块并使用 Gabor 滤波器

Posted

技术标签:

【中文标题】使用 MATLAB 将图像分成大小相等的块并使用 Gabor 滤波器【英文标题】:Divide an image into equal sized blocks using MATLAB and use Gabor filter 【发布时间】:2012-08-22 17:59:14 【问题描述】:

如何使用 MATLAB 将 120x120 大小的面部图像划分为 64 个 15x15 像素大小的块?然后我想用 Gabor 滤波器对每个 15x15 块进行卷积。我使用 blkproc 函数失败,我该怎么做?

【问题讨论】:

【参考方案1】:

要提取这些块,您可以使用以下方法,假设 img 是 120x120 图像矩阵,c=15w=8

blocks = reshape(permute(reshape(img, c, w, c, w), [1 3 2 4]), c, c, w * w)

现在blocks 是一个 15x15x64 矩阵,blocks(:, :, i) 是一个 15x15 矩阵,代表i-th 块。

【讨论】:

谢谢。在得到您的答案之前,我使用以下内容来获得我想要的:'B=mat2cell(y,[15 15 15 15 15 15 15 15],[15 15 15 15 15 15 15 15])' 然后我使用 for 循环来获取块。 MATLAB 是关于矩阵计算和多维数据操作的。所以让reshapepermute 成为你的朋友。

以上是关于使用 MATLAB 将图像分成大小相等的块并使用 Gabor 滤波器的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Matlab将图像裁剪为重叠的块?

如何将图像分成块并找到像素颜色

NAudio FFT 返回所有频率的小而相等的幅度值

怎样利用matlab对一幅图像进行分块以及重组?

如何将一个巨大的列表分成相等的块并将条件应用于这些块?

存储器管理2