【问题标题】:Division of a color image into blocks in MATLAB在MATLAB中将彩色图像划分为块
【发布时间】:2010-12-02 12:13:07
【问题描述】:

我有一个大小为 256X256 的 RGB 图像。我需要将此 RGB 图像分成大小为 32X32 的块。每个块必须依次是一个 RGB 图像。我如何在 MATLAB 中执行此操作。请在MATLAB。

【问题讨论】:

  • 我们在这里帮助您解决问题,而不是为您解决问题。到目前为止你做了什么,你在哪里卡住了?
  • @Donnie:哎呀。好吧,如果@sushmi 对这个问题感兴趣,他们会花一些时间尝试理解解决方案并从中学习一些东西。

标签: matlab


【解决方案1】:

您可以为此使用mat2cell

out = mat2cell(image,ones(256/32,1)*32,ones(256/32,1)*32,3);

out 是一个 8×8 cell array,每个单元格包含一个 32×32×3 RGB 图像。

您可以使用out{1,1} 访问第一个块。

编辑

repmat 更改为ones 以使代码更快。

【讨论】:

  • 在这种情况下,我通常更喜欢使用 ONES 而不是 REPMAT,例如“32*ones(1,8)”。但我想这只是一个偏好问题。 ;)
  • @gnovice:我以为我在某处读到过最好使用repmat 而不是乘以ones(x),但是查看repmat 的代码让我觉得使用@987654331 @ 应该更快...*检查*...是的,它的速度大约是原来的两倍。
猜你喜欢
  • 2014-09-11
  • 1970-01-01
  • 2012-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 2015-04-04
相关资源
最近更新 更多