1

我有一个大小为 256*256 的图像,我想要对该图像进行分块处理。为此,我想获得 64*64=4096 个块,每个块 16 个像素。我是 Matlab 的新手,所以我发现很难找到具体的命令来做到这一点。到目前为止,我所拥有的是,

    I=imread('kidneyimage.jpg');
    I=rgb2gray(I);
    % block wise processing needed.

非常感谢有关命令的任何帮助。

4

3 回答 3

2

为此,您可以使用该功能im2col

http://www.mathworks.fr/help/toolbox/images/ref/im2col.html

于 2012-06-04T13:23:10.907 回答
1

如果您刚开始使用 Matlab,请尝试最简单的方法:使用两个嵌套for循环来迭代和操作每个块。查看 的帮助页面imread,此功能为您提供了一个填充了每个像素颜色的矩阵。Matlab 具有使用冒号 (:) 运算符提取部分矩阵的特殊符号,因此您可以轻松地逐个修改图像块。

于 2012-06-04T13:28:49.343 回答
0

该功能似乎完全符合您的需要。它对每个图像块应用函数,然后连接结果。还有直接从文件中读取图像的选项。B =blockproc(A, [M N], fun)funA

于 2012-09-19T18:40:08.093 回答