【发布时间】: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