使用 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=15
,w=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 是关于矩阵计算和多维数据操作的。所以让reshape
和permute
成为你的朋友。以上是关于使用 MATLAB 将图像分成大小相等的块并使用 Gabor 滤波器的主要内容,如果未能解决你的问题,请参考以下文章