【问题标题】:How to restrict findTransformEcc to a partial affine transform with scale but without shear?如何将 findTransformEcc 限制为具有比例但没有剪切的部分仿射变换?
【发布时间】:2020-11-08 07:42:12
【问题描述】:

我构建了一个立体相机移动应用程序,该应用程序使用 findTransformEcc 执行自动对齐,并且该应用程序与它配合得很好。我知道我可能应该在关键点和描述符等之前使用 rectifyStereoUncalibrated,但是尽管尝试了许多不同的方法,但我得到了不好的结果,我非常沮丧。所以相反,我坚持使用 findTransformEcc(至少现在是这样)。目前我正在使用 MotionType.Euclidean(仅限于平移和旋转),但我想更改它。

到目前为止,该应用程序的工作原理是让用户拍摄一张照片并移到一边以捕捉下一张照片(chacha 方法)。但现在我添加了让两部手机同时捕获的功能。问题是两个相机的焦距和传感器尺寸(视场角)可能不同,所以为了对齐两张图片,我需要允许缩放/缩放。但是,如果我想用 findTransformEcc 做到这一点,我只能从 Euclidean 升级到 Affine,似乎我不能介于两者之间。也就是说,似乎我不能在不允许剪切的情况下进行缩放,而且我不想要剪切。

作为解释这一点的另一种方式,我想获得可以从 estimateRigidTranform(array,array,FALSE) (部分仿射)获得的变换类型,而不是像该函数那样使用关键点,我想使用 findTransformEcc,因为从我的实验来看,它似乎更可靠。

https://github.com/KRA2008/crosscam/blob/develop/AutoAlignment/OpenCV.cs 是自动对齐代码,如果有帮助的话)

【问题讨论】:

  • 难道不是用MotionCriteria == MotionType.Affine 调用CvInvoke.FindTransformECC 来像CvInvoke.EstimateRigidTransform 那样返回仿射变换吗? emgu.com/wiki/files/3.4.1/document/html/…
  • 另外,我不确定,但我的理解是,您可以简单地省略 [0,1] 和 [1,0] 处的剪切值,标量位于 [0, 0] 和 [1,1]?
  • @GeorgeKerwood 我从文档(和我的实验)中了解到,将MotionCriteria == MotionType.AffineCvInvoke.FindTransformECC 一起使用类似于CvInvoke.EstimateRigidTransformtrue 用于FullAffine 参数。问题是我看不到false 的模拟是什么。这是“介于”MotionCriteria == MotionType.Affine 和 ``MotionCriteria == MotionType.Euclidean` 之间的东西
  • 这是EstimateRigidTransform 的文档,它解释了完整仿射的true/falsedocs.opencv.org/2.4/modules/video/doc/…
  • @GeorgeKerwood 回复您的第二条评论:听起来确实可能是我不得不求助的方法,但我不喜欢它。看起来它会导致一些不太理想的结果。我的理解是,当算法进行估计时,它会一点一点地调整参数并调整变换矩阵以获得最佳匹配,但如果最后我只是砍掉一些组件,它不会被优化到与如果算法一直被限制为部分仿射。

标签: opencv emgucv affinetransform stereoscopy


【解决方案1】:

看看基于傅里叶-梅林变换的方法:https://github.com/Smorodov/LogPolarFFTTemplateMatcher

它会给你偏移、缩放和旋转参数,仅此而已。

【讨论】:

  • 欢迎来到 Stack Overflow。您的贡献更适合作为评论而不是作为答案。
  • 非常感谢!我还没有尝试过,但这听起来很有希望,可能正是我所需要的。这是我在堆栈溢出时说“我正在尝试使用 Y 做 X,但它不会 Z”并且你过来说“用 W 做 X,然后你对 Y 的麻烦不会没关系”,太好了!如果可行,我会回来并将其标记为答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多