Algorithm 折叠一张纸(计算机视觉)

Algorithm 折叠一张纸(计算机视觉),algorithm,geometry,linear-algebra,Algorithm,Geometry,Linear Algebra,我正在进行一项任务,试图将带有折叠折痕的二维草图转换为完整的三维表示红线将是山谷和蓝山/山顶。我想计算转换/映射坐标{P1'…P8'}。我还没有找到任何好的软件,可以做到这一点自动,但将感谢提示 a折叠角度 P-坐标 E-元素 蓝线折叠山 红线-折叠谷 a1=a2=a3=90度(π/2弧度)(折叠角度) 和箭头一样是法线 我正在使用Matlab,但我正在寻找解决这个问题的通用算法 假设点P0在origo中是固定的,元素E1不会改变其坐标,我应该如何最好地描述转换?我应该使用非齐次坐标还是齐

我正在进行一项任务,试图将带有折叠折痕的二维草图转换为完整的三维表示红线将是山谷和蓝山/山顶。我想计算转换/映射坐标{P1'…P8'}。我还没有找到任何好的软件,可以做到这一点自动,但将感谢提示

  • a折叠角度
  • P-坐标
  • E-元素
  • 蓝线折叠山
  • 红线-折叠谷
a1=a2=a3=90度(π/2弧度)(折叠角度) 和箭头一样是法线

我正在使用Matlab,但我正在寻找解决这个问题的通用算法

假设点P0在origo中是固定的,元素E1不会改变其坐标,我应该如何最好地描述转换?我应该使用非齐次坐标还是齐次坐标,极坐标

例如,点P8取决于其他坐标,这些坐标取决于角度

我想我可以对点(节点)使用某种邻接矩阵和/或将每个元素与其节点配对的矩阵。 例如:[E1 P0 P4 P5 P1;E2 P1 P5 P6 P2;…]

每个坐标的变换是变换+旋转,变换取决于坐标/元素。但是有几个元素连接在一起会变得很棘手


如何将带有折叠图案的二维“纸”整齐地转换为三维坐标?

您可以迭代每个折叠折痕,并计算折痕一侧所有像素的变换

可以使用变换矩阵计算折叠点的坐标。看一看

首先,平移所有点,使折痕与轴对齐,然后根据折痕的方向旋转折痕一侧的所有点。然后,可以反转第一次平移,使地物返回其原始位置。对下一个折痕重复该过程,直到您完全折叠该图形


使用matlab,矩阵计算非常容易进行。

您可以使用用于描述具有多个旋转关节的机器人的技术;你的问题可以说是个问题。另一个有趣的阅读可能是。

您只需对直线一侧的每个点应用线性变换即可

变换是围绕轴的旋转,其变换矩阵为


由于轴并非以原点为中心,因此您需要首先对原点应用平移,然后进行旋转,然后再向后平移。

听我说的!我用的是罗德里格斯的旋转公式。然而,当折叠模式变得更复杂时,我需要对我认为应该折叠的点进行排序。把其他的都折叠起来会把事情搞得一团糟吗?看看这张照片。你怎么认为?[link])eck!多好的折叠图案啊!对于这样的模式,您将有一个问题,即折叠移动的不是您正在折叠的点。很明显,推动蓝线会沿着红线拖拽一些点。。。这比我描述的要复杂得多。哈,是的!我认为这类问题非常严重。您是否认为在合理的情况下,可以编写一个适用于这种模式的算法,但也适用于任意模式?工作的第一天,我很幸运,呵呵……这个问题是用阿德里安描述的技术递归解决的。但是,必须确保一个元素不会被多次处理,例如,如果存在闭合循环。您是否保证纸张不会相互碰撞?折叠顺序是什么(旋转不是可交换的)?