【问题标题】:MATLAB blockproc does not concatenate results [duplicate]MATLAB blockproc 不连接结果[重复]
【发布时间】:2017-06-23 13:54:34
【问题描述】:

由于某种原因,使用以下代码:

myimg = rand(30, 30);
myfun = @(block) block.data;
B = blockproc(myimg, [5 5], myfun)

blockproc 将 B 作为 30x30 矩阵返回。这似乎与 blockproc 的帮助文本不一致,它声称 myfun 的结果正在被连接(我还尝试将 myfun 作为一个单独的函数,将每个块输出到命令行,它确实在处理一堆 5x5 图像)。 B 不应该是 5x5 矩阵的串联吗?

编辑:我想要实现的目标:将输入图像平铺成重叠平铺。建议的线程处理不重叠的图块。

编辑 2:这是 blockproc 帮助文本:

"B = blockproc(A,[M N],FUN) 通过应用 函数 FUN 到 A 的每个不同的 M×N 块并连接 结果到输出矩阵 B. FUN 是一个函数句柄 接受“块结构”作为输入并返回矩阵的函数, 向量或标量 Y:"

对我来说,如果 FUN 是身份,我应该得到所有图块的串联,(特别是因为文本允许 FUN 的返回值是矩阵)但也许还有其他方式来解释文字?

【问题讨论】:

  • 我仍然不清楚您想要的结果。您是在寻找5x5x676 矩阵、5x5x36 还是其他什么?你在寻找什么样的串联?
  • 您好,我已对问题进行了编辑以使其更清晰。我认为它是 5x5x676(我猜你考虑没有填充的情况。否则它应该是 5x5x900)。我不关心连接的形式,只要它留下一些有效的方法来恢复各个图块。

标签: matlab


【解决方案1】:

我想你想要

myimg = rand(5, 5);
B=repmat(myimg,6);

【讨论】:

  • 对不起,我想要的是从输入图像中提取移位的 5x5 瓦片。
  • @JohnSmith 在这种情况下问题是重复的
猜你喜欢
  • 1970-01-01
  • 2013-04-22
  • 1970-01-01
  • 2019-03-06
  • 2019-04-18
  • 1970-01-01
  • 2011-10-10
  • 2013-02-25
  • 1970-01-01
相关资源
最近更新 更多