我有一个大小为 256*256 的图像,我想要对该图像进行分块处理。为此,我想获得 64*64=4096 个块,每个块 16 个像素。我是 Matlab 的新手,所以我发现很难找到具体的命令来做到这一点。到目前为止,我所拥有的是,
I=imread('kidneyimage.jpg');
I=rgb2gray(I);
% block wise processing needed.
非常感谢有关命令的任何帮助。
我有一个大小为 256*256 的图像,我想要对该图像进行分块处理。为此,我想获得 64*64=4096 个块,每个块 16 个像素。我是 Matlab 的新手,所以我发现很难找到具体的命令来做到这一点。到目前为止,我所拥有的是,
I=imread('kidneyimage.jpg');
I=rgb2gray(I);
% block wise processing needed.
非常感谢有关命令的任何帮助。
为此,您可以使用该功能im2col
。
如果您刚开始使用 Matlab,请尝试最简单的方法:使用两个嵌套for
循环来迭代和操作每个块。查看 的帮助页面imread
,此功能为您提供了一个填充了每个像素颜色的矩阵。Matlab 具有使用冒号 (:) 运算符提取部分矩阵的特殊符号,因此您可以轻松地逐个修改图像块。
该功能似乎完全符合您的需要。它对每个图像块应用函数,然后连接结果。还有直接从文件中读取图像的选项。B =
blockproc
(A, [M N], fun)
fun
A