【问题标题】:how to use block processing for image?如何对图像使用块处理?
【发布时间】:2011-06-26 18:26:36
【问题描述】:

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

【问题讨论】:

  • 从头开始,一直到结束:然后停止。你已经得到图像了吗?你是如何表示它的?
  • 为什么你认为blockproc 没有帮助?它似乎完全符合您的要求。该文档还包含示例代码。更具体地说明你卡在哪里/为什么。

标签: image-processing


【解决方案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

虽然这不是一个真正快速的方法......但它确实有效......

希望对您有所帮助...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 2012-01-14
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多