我在matlab中遇到了新手。我试图编写一个代码,在大小为3 * 3的非重叠块中划分图像,我应该对特定块进行操作,比如获取块的中心像素的值并进行一些操作。但我不知道从哪里开始。使用像blockproc这样的命令也无济于事。谁能建议我从哪里开始?
答案 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
虽然这不是一个非常快速的方式......但它有效...
希望有帮助...