为什么在 affine2d 中使用转置矩阵

2024-01-02

根据http://nl.mathworks.com/help/images/ref/affine2d-class.html http://nl.mathworks.com/help/images/ref/affine2d-class.html

Matlab 需要一个转置仿射变换矩阵,并通过 v 应用变换T,其中 v 作为行向量而不是标准 Tv 其中 v 是列向量。

他们说有效矩阵的形式为 [a b 0; cd 0; e f 1] 文献中常见形式的转置 - 以及当它们乘以 v 时您所期望的结果T 代替 Tv.

因此,他们的示例执行顺时针旋转而不是逆时针旋转(即使他们说应该逆时针旋转):

%Define 10-Degree Rotation in the Counter-Clockwise Direction
%Create an affine2d object that defines the transformation.
theta = 10;
tform = affine2d([cosd(theta) -sind(theta) 0; sind(theta) cosd(theta) 0; 0 0 1])
%Apply forward geometric transformation to an input (U,V) point (5,10).
[X,Y] = transformPointsForward(tform,5,10)
X = 6.6605
Y = 8.9798

他们使用文献矩阵进行逆时针旋转,但以相反的顺序相乘,因此他们得到顺时针旋转...如果他们转置矩阵,它确实会进行逆时针旋转(也许他们忘记在示例中这样做) 。

我已经测试了从左侧将矩阵乘以向量与将向量乘以矩阵的速度 - 并且差异可以忽略不计。

我猜这是一个错误,他们保留它是为了向后兼容? 有人对此有任何见解吗?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在 affine2d 中使用转置矩阵 的相关文章

随机推荐

  • Zip 文件上传到服务器时损坏

    我的 java 程序将 zip 文件从我的系统上传到 FTP 服务器 uploadfile 是一个包含上传代码的函数 uploadfile 192 168 0 210 muruganp vm4snk home Admin GATE521 L
  • 全日历结束日期错误一天

    我正在制作一个完整的日历支持的汽车预订功能 这是咖啡脚本文件 updateEvent event delta revertFunc gt ajax type PUT dataType json success data gt alert S
  • 声谱图

    我制作了一个应用程序 可以将 FFT 实时绘制到屏幕上 从麦克风 x 轴上的时间 y 轴上的频率和像素的颜色代表幅度 几乎是一个普通的 FFT 频谱图 我的问题是 即使我可以从音乐中看到模式 但也有很多噪音 谷歌搜索我看到人们对振幅应用对数
  • FacesConverter forClass 不适用于复合组件

    我有一个简单的复合组件 它必须呈现输入文本 当输入值并按下命令按钮时 会引发以下异常 java lang IllegalArgumentException Cannot convert 1 of type class java lang S
  • 谷歌翻译:超出配额

    我正在尝试使用 Google Translate REST API 并同时请求以下网址 我收到以下回复 响应 responseData null responseDetails 超出配额 请参见http code google com ap
  • 在 R 数据框中的所有列中搜索值

    这是一个示例数据框 df data frame company c a b c d bond c 0 2 1 0 3 0 equity c 0 7 0 0 5 1 cash c 0 1 0 0 2 0 df company bond equ
  • javascript 中的 obj.length === +obj.length

    在 underscore js 源码中我在很多地方都遇到过 if obj length obj length 有人可以解释一下 他们为什么使用它 这是另一种写作方式if typeof obj length number 他们为什么这样做 谁
  • iPad 上的 Skrollr 截止

    我正在使用 Skrollr 插件 它在桌面上运行良好 但在 iPad 上 我的文档的高度被截断了 我尝试删除所有 skrollr 数据属性 但问题仍然存在 我注意到只需激活插件就会遇到此问题 我尝试启用 禁用forceHeight选项 但问
  • 未找到 Ansible 内部脚本命令

    Ansible name Node package manager npm name pm2 global yes notify restart nginx name start the app script files common pm
  • 通过反射获取命名空间中的所有类型

    C 中如何通过反射获取命名空间中的所有类 以下代码打印指定的类的名称namespace在当前程序集中定义 正如其他人指出的那样 命名空间可以分散在不同的模块之间 因此您需要首先获取程序集列表 string nspace var q from
  • 异步/等待 JQuery 文档就绪

    它适用于document addEventListener DOMContentLoaded async gt 但我很好奇让它与 JQuery 一起工作 而且 我想要使用异步 等待 不承诺因为稍后我将需要承诺回调之外的变量 let prod
  • PHP,JavaScript - 通过重定向标头来检测屏幕宽度是否正确

    我使用以下 JavaScript 来检测屏幕宽度 并通过条件语句将其用作模板文件中的常量 以显示 不显示网站的部分 虽然它与我的问题没有太大关系 但以防万一 是的 我正在使用 WordPress 我也已经在使用 mobileDetect P
  • Visual Studio 2010 错误:类型 Universe 无法解析程序集

    我已将最初在 Visual Studio 2008 中创建的 WPF 项目加载到 Visual Studio 2010 中 转换过程进展顺利 但在某些 XAML 文件上 VS2010 设计器会抛出几个与项目引用相关的错误 包括以下错误 Sy
  • 如何克服winform的Control.DrawToBitmap()方法大尺寸限制

    我正在使用 C Winforms 和 MS Visual Studio 2010 开发一个桌面应用程序 在该应用程序中 我必须截取表单面板的屏幕截图并将图像保存在光盘中 面板尺寸可以很大 我使用了 Panel DrawToBitmap 方法
  • 在 FluentValidation 中访问 WebApi 2 的路线数据

    我有一个基本的 C Web Api 2 控制器 它有一个 POST 方法来创建实体 public HttpResponseMessage Post UserModel userModel 还有一个更新模型的 PUT 方法 public Ht
  • Sphinx:如何排除自动模块中的导入?

    我有一个用 Python 编写的 Raspberry Pi 项目 它使用 RPi GPIO 模块 代码上的所有工作都是在 Windows 机器上完成的 其中 RPi GPIO 不会安装 每次我尝试运行 autodoc 时 它都会崩溃 说它无
  • Docusign 连接服务未将数据发布到指定的 url

    Docusign 连接服务不会将数据发布到连接服务选项中指定的 URL 实际上 如果我重新发送日志中的数据 它会起作用 但它本身不起作用 请帮我 谢谢 通常 当 DocuSign Connect 未发布到 URL 时 这是由以下原因之一引起
  • Maven 资源过滤不起作用 - 由于 spring boot 依赖性 [重复]

    这个问题在这里已经有答案了 在 Maven 项目中 我尝试使用 Maven 资源过滤替换一些令牌 但它不起作用 我还有一些其他项目可以工作 但在这个单个项目中不起作用 不知道出了什么问题 属性文件位于位置 src main resource
  • eof() 返回什么?

    这是代码 string fname home jack example csv ifstream csvin fname c str if csvin eof do something 我的问题是 什么情况下eof 返回真 我有以下选择 文
  • 为什么在 affine2d 中使用转置矩阵

    根据http nl mathworks com help images ref affine2d class html http nl mathworks com help images ref affine2d class html Ma