如何使用块处理图像?

时间:2011-02-14 07:51:24

标签: image-processing

我在matlab中遇到了新手。我试图编写一个代码,在大小为3 * 3的非重叠块中划分图像,我应该对特定块进行操作,比如获取块的中心像素的值并进行一些操作。但我不知道从哪里开始。使用像blockproc这样的命令也无济于事。谁能建议我从哪里开始?

1 个答案:

答案 0 :(得分:1)

您可以轻松地使用blockproc: http://www.mathworks.com/help/toolbox/images/ref/blockproc.html

但如果那对你不起作用,你会得到什么错误?

如果你想手动完成(比如提取每个块的中心像素的值)你可以简单地使用两个循环来做这个..但要注意,这是一个不太优雅而且不是很快的方法...

image = imread('image.png');
s = size(image);

for i=2:3:s(1)-1
  for j=2:3:s(2)-1

    %% here you have the midpoint of each 3x3 block... 
    %% you could then easily crop the image around it if you 
    %% really need separated blocks...

  end
end

虽然这不是一个非常快速的方式......但它有效...

希望有帮助...