【问题标题】:Matlab - Save the 32x32 centre of an imread imageMatlab - 保存读取图像的 32x32 中心
【发布时间】:2014-04-09 19:25:12
【问题描述】:

所以我正在 Matlab 中阅读一堆图像。

我感兴趣的图像部分是中心 32x32 像素最多的部分(实际图像中心的一个小方块)。

读入图像后,如何仅提取中心部分或 32x32 并将其存储在新的图像变量中?

提前致谢

【问题讨论】:

  • 您的图像是 2D 还是 3D 数组?

标签: matlab crop


【解决方案1】:

如果您的图像不是 RGB,这可能会稍微简单一些,但为什么不涵盖更复杂的情况:

img = imread('image.png');
sz = size(img);
x = floor(sz(2)/2);
y = floor(sz(1)/2);
patch = img(y-15:y+16, x-15:x+16, :);

【讨论】:

  • 哦,太好了。出于某种原因,我认为它会比这更复杂。谢谢 :D 出于好奇,如果它们不是 RGB 会有什么不同?感谢发帖。
  • @Reanimation 如果图像是二维数组(例如,灰度图像),您可以删除最后一行中的, :,因为在这种情况下没有第三维
  • 另外,在 2D 情况下,我更喜欢使用 [y x] = size(...) 来避免中间向量 - 无论哪种方式,您最终都会得到几乎相同数量的代码,因此它是否真的“更简单”是值得商榷的。
  • 太棒了。谢谢大家。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-24
  • 2020-11-19
  • 2012-08-22
  • 1970-01-01
相关资源
最近更新 更多