Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 跟踪对象时如何找到多个单应性?_C++_Opencv_Feature Detection_Hamming Distance_Video Tracking - Fatal编程技术网

C++ 跟踪对象时如何找到多个单应性?

C++ 跟踪对象时如何找到多个单应性?,c++,opencv,feature-detection,hamming-distance,video-tracking,C++,Opencv,Feature Detection,Hamming Distance,Video Tracking,众所周知,为了在OpenCV中跟踪对象,我们可以使用: 查找特征 匹配所需对象特征和视频中当前帧特征之间的相似性 然后使用查找对象的新位置 只有当大多数关键点具有相同的透视变换(单应性)时,我们才能找到单应性。但是如果一半的点有第一个变换,另一半有第二个不同的变换,如何同时找到这两个单应?如何将点数组拆分为具有不同单应性的多个数组 例如: 为了跟踪任意形状的对象,我使用了一个矩形参考图像,其中包含一个对象和背景。我们移动对象,但背景保持不变-现在我们找不到单应性 对象被分离(我们正在跟踪移

众所周知,为了在OpenCV中跟踪对象,我们可以使用:

  • 查找特征
  • 匹配所需对象特征和视频中当前帧特征之间的相似性
  • 然后使用查找对象的新位置
只有当大多数关键点具有相同的透视变换(单应性)时,我们才能找到单应性。但是如果一半的点有第一个变换,另一半有第二个不同的变换,如何同时找到这两个单应?如何将点数组拆分为具有不同单应性的多个数组

例如:

  • 为了跟踪任意形状的对象,我使用了一个矩形参考图像,其中包含一个对象和背景。我们移动对象,但背景保持不变-现在我们找不到单应性
  • 对象被分离(我们正在跟踪移动的摩托车-摩托车停了,摩托车人走开了-现在我们找不到单应性)
  • 稍微改变了物体的形状(我们正在跟踪车辆,在行李箱打开后没有跟踪到车辆-现在我们找不到单应性)

如何在对象的参考图像和场景帧之间找到不是一个,而是两个或三个主单应?

我认为在这种情况下,简单的特征匹配不够可靠。您可能希望使用一种全功能的跟踪方法,例如,它将处理部分遮挡、外观变化等。我认为在这种情况下,简单的特征匹配不够可靠。您可能希望使用一种功能齐全的跟踪方法,例如,它将处理部分遮挡、外观更改等。