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