【问题标题】:Metrics of SURF detector in matlabmatlab中SURF检测器的度量
【发布时间】:2015-11-17 17:38:03
【问题描述】:

我按照我的示例链接查找原始图像和查询图像之间的匹配点以检测查询图像是否在原始图像中

当使用模板(查询图像)在原始图像中工作正常,当使用查询图像在原始图像中找不到时出现此问题

问题在于:

MATCHED_POINTS1 ( original image ) and MATCHED_POINTS2 ( query image )
do not contain enough points 

Error using affine2d/set.T 
The final column of an affine transformation matrix must consist of zeroes,
except for a one in the last row.

问:我需要找到一个计算匹配点百分比的指标,因为在应用几何变换时由于没有足够的匹配点而返回错误..?

我的示例链接如下http://www.mathworks.com/help/vision/examples/object-detection-in-a-cluttered-scene-using-point-feature-matching.html

【问题讨论】:

  • 您似乎收到此错误,因为您希望从查询图像中获得许多特征点,但在原始图像中找不到足够的特征点(因为查询图像不在原始图像中) )。由于我们不知道您的代码具体是如何工作的,我只能说您需要一个步骤来确定查询图像是否实际上是原始图像。您可以尝试为匹配特征的百分比设置阈值,但这在某些情况下仍会导致错误。
  • 谢谢您,先生,如何获取或设置匹配功能的百分比...请提供任何想法
  • 能否尝试为原始图像和查询图像设置不同数量的特征点,其中原始图像的特征点数量应该明显更大?看看这些数字中的任何一个是否真的可以避免错误。问题是,您正在使用工具箱,因此您应该避免更改工具箱中的内容;但是您还需要一种解决方法,我的猜测是您可以通过设计一种更改特征点数量的算法来解决它。
  • 先生,我可以计算匹配点,但对于不同的查询图像返回不同数量的点,大约 300 和大约 8 或 10 等,但在这两种情况下,当应用几何变换时,我得到错误对于找到的小点,你能帮我检测一下,在应用几何变换之前查询图像是原始的吗...
  • 所以如果原始图像返回的匹配特征点少于查询图像,则会导致错误。您应该将匹配点(300、8 或 10)与原始图像中的特征点数(例如 300)进行比较,如果 8/300 小于某个阈值(例如 40%),则图像不存在在原版中。

标签: matlab computer-vision feature-detection matlab-cvst


【解决方案1】:

您遇到的第一个错误是由estimateGeometricTransform 引发的。您需要至少 3 对匹配的点来估计仿射变换。如果 matchedBoxPointsmatchedScenePoints 包含少于 3 个点,那么您将收到此错误。您可以简单地检查size(boxPairs, 1) 是什么。如果小于 3,则可以断定场景中不存在该物体。

【讨论】:

  • 谢谢...这项工作对我来说很好,并且效果很好....以下链接中有一些有用的属性...如果可能,我们如何使用其中之一:mathworks.com/help/vision/ref/…
猜你喜欢
  • 2015-09-27
  • 2014-10-09
  • 2023-03-21
  • 1970-01-01
  • 2014-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多