2011-02-14 81 views
0

我是在matlab中的新手。我正在尝试编写一个代码,将图像划分为3 * 3大小的非重叠块,我应该执行特定块的操作,例如获取块的中心像素的值并执行一些操作。但我不知道从哪里开始。使用像blockproc这样的命令将无济于事。任何人都可以建议我从哪里开始?如何使用块处理图像?

+0

*创业之初并继续直到你走到尽头:然后停下来。*你有没有图像?你怎么代表它? – misha 2011-02-14 08:38:01

回答

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 

这并不是虽然非常快的方式...但它的工作原理...

希望帮助...