【问题标题】:Image shuffling puzzle creation[Modified Question]图像洗牌拼图创建[修改问题]
【发布时间】:2011-03-13 21:16:50
【问题描述】:

我有 3 张图像 E1、E2、E3,大小相同,为 256*256*3。现在根据一些任意规则,我想创建一个应该是可逆操作的曲线锯拼图。所得到的图像 E 将具有不相等的大小,最好是。用一个小例子来解释这个问题,以显示简单的目标: 如何解决结果矩阵 E(图像格式)的大小不等以及如何实现这一点?请帮忙 例子 : 尺寸(E1)=尺寸(E2)=3*3

E1=( 1 2 3
     4 5 6
     7 8 9 )

E2 = ( a b c
       d e f
       g h i)

E = ( 1 2 3  a b c
      4 5 6  d e f
      7 8 9  g h i)

[r c]=大小(E); 但是排列方案应该是 r/c = 操作中涉及的矩阵的数量。然而,这适用于偶数维矩阵。

因此,RGB 图像需要相同的操作。 修改后的问题:在上述情况下,如果E=[E1;E2] 那么如何从 E 中提取/取回 E1 和 E2?

【问题讨论】:

  • 那么你的拼图的所有部分都是矩形的?
  • @Jacob :原始图像是正方形的,但结果是封装了所有 3 张图像,因此它的大小会增加/增加。对不起,我不知道你指的是哪个矩形。
  • @gavishna:你能举个例子,用三个大小为 3x3 的数组吗?我很难理解你的问题。
  • @Jonas:我已经添加了示例。谢谢
  • 你能让拼图类比更清楚吗?您认为单个“块”是矩阵还是矩阵元素?当你说“可逆”时,你到底是什么意思?一个更详细的例子会有所帮助。

标签: matlab image-processing


【解决方案1】:

我不明白您在做什么,但是您可以使用reshape 轻松完成示例中的操作:

E1_reshaped = reshape(e1, 1, []);
E2_reshaped = reshape(e2, 1, []);

E = [E1_reshaped; E2_reshaped];

【讨论】:

  • @eykanal:是否可以将整个矩阵 e1 和 e2 包含在结果 E 中,使得 E 由 e1 和 e2 组成。此外,是否可以从 E 中提取 E1_reshape 和 E2_reshape 以便我返回原始矩阵,即使过程可逆。
  • @gavishna 这包括 e1 和 e2 矩阵(我修正了一个错字,也许这导致了你的问题)。您也绝对可以找到原始矩阵。我建议阅读一些 matlab 帮助文件以了解如何使用矩阵,因为您的问题非常基础。
  • 谢谢。但是,如果知道这是如何可逆操作,我会感到宽慰,因为除非我们将其保存在其他矩阵中,否则像素将会丢失。此外,bitslice 可以做同样的任务吗?
  • @gavishna 我不熟悉 bitslice 函数,所以我无法帮助你......对不起!
  • @gavishna - :) 当我说“阅读 matlab 帮助”时,这就是我所指的。你可以这样做 E1 = E(1,:) 然后使用 reshape 函数,但这是非常基本的 matlab 矩阵操作。在继续之前,您绝对应该熟悉基本的 matlab 语法。我建议从 Matlab 帮助文件开始,这些文件也是 available online
猜你喜欢
  • 1970-01-01
  • 2013-12-20
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
相关资源
最近更新 更多