问题标签 [matrix-transform]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - 2组点对的变换矩阵
我曾尝试使用该命令estimateGeometricTransform
,fitgeotrans
但它返回一个类对象,affine2d
我需要的是生成一个可以绘图的转换矩阵。
有什么具体的命令吗?
matrix - OpenGL 矩阵缩放然后翻译仍在缩放我的位置
我正在尝试将我的文本模型网格定位在屏幕上。使用下面的代码,它按照代码建议绘制网格;网格的左侧位于屏幕的中心。但是,我想把它放在屏幕边缘的左边,这就是我卡住的地方。如果我取消注释 Matrix.translateM 行,我会认为该位置现在将位于屏幕的左侧,但似乎该位置正在被缩放(!?)
我尝试过的几个场景:
a.)仅 Matrix.scaleM(无 Matrix.translateM)= 网格左侧位于 0.0f(屏幕中心),具有正确的比例。
b.)仅 Matrix.TranslateM(无 Matrix.scaleM)= 网格左侧正确定位在屏幕左侧 -1.77f,但缩放不正确。
c.) Matrix.TranslateM 然后 Matrix.scaleM或Matrix.scaleM 然后 Matrix.TranslateM =比例正确,但位置不正确。似乎该位置已缩放,并且比屏幕左侧更靠近中心。
我在 Java 的 Android Studio 编程中使用 OpenGL ES 2.0。
屏幕边界(从 Matrix.orthoM 设置)左侧:-1.77,右侧:1.77(中心为 0.0),顶部:-1.0,底部:1.0(中心为 0.0)
网格高度为 1.0f,因此如果没有 Matrix.scaleM,则网格占据整个屏幕高度。
android - 如何使(矩阵?)永久转换为 RecyclerView
我目前正在使用RecyclerView
具有水平LinearLayout
. 占据整个RecyclerView
屏幕:
我正在寻找对这样的修复转换的方法RecyclerView
:
请注意,转换就像“下沉”或“垮台”以产生“深”的效果。由于项目的大小可以改变,我需要一个永久的转变,这就是为什么我想在RecyclerView
有什么办法吗?也许有办法做到这一点onDraw
?
非常感谢您提前。
问候。
拉斐尔。
添加:
我想注意到它PageTransformer
做了类似的事情。事实上,我想要的东西与三星 Galaxy S3 在您使用其启动器之一(使用ViewPager
)滚动时所做的非常相似,但我想修复该转换:
我在尝试什么?
我正在尝试滚动 的大型水平适配器RecyclerView
,但我想“折叠”一点视图以对“圆柱体”产生一点印象。
wpf - MatrixTransform 旋转然后在 xaml 中翻译图像
我正在尝试使用简单的 Matrix.translate 和 Matrix.rotate 方法旋转然后翻译图像,但是由于某种原因,当它旋转 90º 或 270º 时,如果我尝试将其平移一英寸,它就会失控并远离中心。如果它是 180º,它会朝相反的方向射出。
图像的 xaml 是这样的:
对于旋转:
对于翻译:
关于是什么让它出现的任何线索,或者我做错了什么让它呈现这种行为?
java - 基于 Java 列表中打印的 4 个点,从侧视图/不垂直于垂直方向自动转换 BufferedImage
我看到很多人只是在阅读它...也许您需要一些额外的信息?在下面评论,我会给它!
正如我之前的问题所说,我正在建造一辆汽车,它会根据你用手机拍摄的图像在房间内定位。为此,我需要一个代表房间的图像。由于您不能直接从房间顶部拍照(除非您是一只鸟),因此我需要将其转换为“垂直”图像。如果您必须手动执行此操作会很奇怪,因此我决定自动执行此操作。现在这更难了:)好吧,我要求在此转换图像线程并得到了解决我程序的一部分的标记注释。我仍在寻找一种自动化的方法。由于我需要图像与现实生活中的大小相同(我们可以将 1 像素作为 1 厘米),我们可能需要在 A4 纸上打印某种“参考点”。此外,可能需要一些 OpenCV,因为我们需要知道图像中两点之间的距离。除此之外,您如何定义必须基于四点进行的“校正”?
我做了一些图片供视觉参考:
编辑:我想在最新的(3.1)版本中执行此操作,我不知道如何使用它:)
编辑#2:我已经做了一些工作,在这篇文章中解决了部分问题:图像透视校正
java - 收集4点子图像,矩阵变换问题+抗锯齿的有效方法
项目快速回顾:
我正在制造一辆可以在障碍物之间自动行驶的汽车,您的手机将拍摄这张照片。然后应该将图片裁剪为“移动区域”或汽车可以移动的区域的大小。那应该是自动完成的。就我而言,我会这样做:
- 在您拍摄“障碍物地图”之前,您必须在地面上放一张纸,这样程序就会识别区域的大小/图像应该被转换为“垂直”于地面的方式。
- 在程序中,您将标记汽车可以移动的区域并对其进行裁剪。然后它会自动将所选区域转换为尽可能“垂直”,因此障碍物贴图足以让汽车在其中移动,因为它是障碍物贴图。
然后我有两个选择:要么自动识别障碍物,要么手动进行。如果我想让它自动化,我将不得不使用某种 OpenCV 障碍物识别。Else id 只是制作一个简单的程序来标记障碍物。之后,您将标记一个点,汽车应该移动到的位置,它会使用 A算法计算最佳路径。这个算法只给出了汽车应该移动的点,所以我联系了我学校的一些教授,他们现在正在帮助汽车转向和计算汽车应该转向的正确角度才能到达某个位置。*
我有 2 个问题,都与 BufferedImage 相关。
- 过去的两个问题,我问如何获得由 4 个随机点定义的子图像。我这样做没有答案,所以我自己做了,但我知道这种方法非常低效,我想知道如何才能做得更好?
- 我的第二个问题是关于矩阵变换。我已经在讨论这个问题并得到了这个代码,它基本上是这个代码的修改版本。代码将我限制为输入缓冲图像的大小,我想知道如何“删除”这个限制,因为在某些情况下需要放大图像,但代码会不断裁剪它。我也想在上面加上某种 AA(抗锯齿),因为转换后的图像看起来很奇怪/像素化。
编辑:在第一个问题的代码中,在类 Place_2D 中有一个方法 line(Point p1, Point p2) ,它基本上创建了一个连接 2 个点的点数组列表,创建了一条线。
3d - 使用矩阵在 3D 空间中定位对象
使用 3D 矩阵变换时,是否可以仅对每个对象使用一个矩阵来定位、旋转和缩放对象?我是否还需要维护一组单独的位置信息,以便例如执行“围绕任意点旋转”之类的操作?
我问是因为我不太清楚如何(特别是......)围绕任意点旋转,尽管这与对象空间信息的一般管理有关。
3d - 4x4 矩阵可以用于多个 3D 变换吗?
我正在使用 4x4 矩阵进行 3D 转换。例如,在执行旋转时,我正在创建一个 4x4 旋转矩阵并将这两个矩阵相乘。这工作正常。
目前,我有一个循环来遍历每组 3D 点数据,将它们与变换矩阵相乘。这需要从 3D 点数据创建一个 1x4 矩阵,并在第 4 列加上一个 1。
我的问题是:我可以通过简单地将 4x4 转换矩阵设置为 4xN 矩阵并将其乘以 4x4 转换矩阵来将 4x4 转换矩阵应用于 3D 对象的点数组中的每个点吗?
matlab - Matlab 将 2D 矩阵转换为 3D 矩阵
我有一个二维矩阵A
,如:
我想将此 2D 矩阵转换为B
大小为 2X3X4 的 3D 矩阵,例如:
现在我要做的是首先将这个 2D Matrix 转换A
为 cell 类型C
,mat2cell
然后使用cat
它来转换它 3D Matrix B
,但这太复杂了,因为我根本不需要这个 cell C
。
有人可以给我任何建议,我可以如何直接优雅地转变A
为?B
谢谢!
c++ - 使用 PCL 中的 ICP 进行累积矩阵变换
我的目标是将 3D 点云与 ICP 对齐。不知何故,我有一个错误,我相信这是因为累积矩阵变换。
对于调试,我从创建的 2D 点云开始。为了创建点云,我创建了一个随机角度,并用 cos() 和 sin() 将它们标记为 ax 和 ay 值,所以我在一个圆上有随机点。比我为每个新创建的图像使用迭代上升的平移和旋转。
我正在生成大约 20 个点云并将它们存储在这些 512*512 图像中。比我想加载图像,用它们创建点云并将它们与 ICP 对齐。
现在进行累积矩阵变换。时间 0 的图像将具有身份矩阵。但是任何其他图像都会从最后一个已知位置得到从 ICP (M) 收集的矩阵乘以变换矩阵作为变换:Mi = M * Mi-1
我不确定这是否是写入方式,或者我是否必须在应用完整转换之前转换回 Identity。
我的结果是 10 个点云:
在第一个中,我们看到没有 ICP 的收集点云,而在第二个中,我们看到了 ICP。我之前只用翻译测试过它,效果非常好。而且我只用旋转来测试它,而且我有很高的错误率。可能是旋转太高,因此 ICP 将点对齐错误,而不是找到错误的匹配项。
但是,如果我测试真实数据,从 Xbox Kinect 相机收集的图像,它似乎与我的 2D 点云示例中的错误相同。
那么我计算累积矩阵变换是否错误?还是可能有我看不到的不同问题?
我应该如何正确设置我的 ICP?我只使用设置:
还有其他方法可以正确测试吗?