Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.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
如何使用单应| Opencv Python检测摄像机是否移动或抖动_Python_Opencv_Camera - Fatal编程技术网

如何使用单应| Opencv Python检测摄像机是否移动或抖动

如何使用单应| Opencv Python检测摄像机是否移动或抖动,python,opencv,camera,Python,Opencv,Camera,我目前正在开发一个系统来检测和标记后续帧对之间相机位置的变化 其思想是检测相机何时离开其初始位置,并标记发生位置变化的帧 目前的工作流程如下: 1-使用ORB检测帧对之间的关键点 2-匹配这些关键点,并筛选出好的匹配项。(这有助于忽略 移动场景中的对象) 3-使用cv2.findHomography计算帧之间的单应性 现在我已经存储了单应矩阵,是否可以对它们执行计算以检测帧之间摄影机位置的变化 我在想,我需要分解单应矩阵,提取旋转和平移,然后对这些值进行一些计算 我希望我能够很好地表达这一点,非

我目前正在开发一个系统来检测和标记后续帧对之间相机位置的变化

其思想是检测相机何时离开其初始位置,并标记发生位置变化的帧

目前的工作流程如下:

1-使用ORB检测帧对之间的关键点

2-匹配这些关键点,并筛选出好的匹配项。(这有助于忽略 移动场景中的对象)

3-使用cv2.findHomography计算帧之间的单应性

现在我已经存储了单应矩阵,是否可以对它们执行计算以检测帧之间摄影机位置的变化

我在想,我需要分解单应矩阵,提取旋转和平移,然后对这些值进行一些计算

我希望我能够很好地表达这一点,非常感谢任何和所有的帮助,代码和输出如下


进口cv2
将numpy作为np导入
导入glob
路径='sb-190/*.jpg'
#获得帧
frames=[glob.glob(路径)中文件的cv2.imread(文件)]
n_帧=len(帧)
#迭代器
i=0
而i10:
pts1=np.float32([kp1[m.queryIdx].pt表示m处于良好状态])。重塑(-1,1,2)
pts2=np.float32([kp2[m.trainIdx].pt表示m处于良好状态])。重塑(-1,1,2)
M、 状态=cv2。findHomography(pts1、pts2)
h、 w=当前形状[:2]
pts=np.float32([[0,0],[0,h-1],[w-1,h-1],[w-1,0]])。重塑(-1,1,2)
打印(M)
打印()
其他:
cv2.imshow(“当前”,当前灰色)
key=cv2.waitKey(1000)
如果键==27:
打破
prev=当前副本()
i=i+1
cv2.destroyAllWindows()
输出为同形矩阵:

[[9.98069728e-01-8.44512083e-03 1.93805757e+00]
[1.65520807e-03 9.92207941e-01-1.32879826e+00]
[-1.94333567e-07-7.62519660e-06 1.00000000e+00]]
[9.98069728e-01-8.44512083e-03 1.93805757e+00]
[1.65520807e-03 9.92207941e-01-1.32879826e+00]
[-1.94333567e-07-7.62519660e-06 1.00000000e+00]]
[9.98069728e-01-8.44512083e-03 1.93805757e+00]
[1.65520807e-03 9.92207941e-01-1.32879826e+00]
[-1.94333567e-07-7.62519660e-06 1.00000000e+00]]
[-1.09409512e+00 1.2880837E-01 4.30594249e+02]
[-8.09133467e-01 9.53894733e-02 3.18403442e+02]
[-2.54085719e-03 2.99087149e-04 1.00000000 E+00]]
[-1.09409512e+00 1.2880837E-01 4.30594249e+02]
[-8.09133467e-01 9.53894733e-02 3.18403442e+02]
[-2.54085719e-03 2.99087149e-04 1.00000000 E+00]]
[1.02189803e+00-3.32323178e-03-1.15831742e-02]
[1.31735188e-02 1.03347097e+00-1.30685436e+01]
[2.77752056e-05 2.20653391e-05 1.00000000 E+00]]
[3.14925453e-01-4.36827742e+00 8.45199492e+02]
[7.54635765e-02-1.04674244e+00 2.02529760e+02]
[3.72604878e-04-5.16833891e-03 1.00000000 E+00]]
[3.14925453e-01-4.36827742e+00 8.45199492e+02]
[7.54635765e-02-1.04674244e+00 2.02529760e+02]
[3.72604878e-04-5.16833891e-03 1.00000000 E+00]]
[[-4.10062878e-01-2.71969634e+00 1.71345949e+03]
[-2.07256510e-01-6.94651451e-01 5.48898050e+02]
[-3.80097560e-05-2.20367911e-03 1.00000000 E+00]]
[[-9.13756863e-01-3.67621908e-01 1.50169122e+03]
[-2.61876140e-01-1.05127674e-01 4.30295697e+02]
[-6.08491276e-04-2.44792762e-04 1.00000000 E+00]]
[[-9.13756863e-01-3.67621908e-01 1.50169122e+03]
[-2.61876140e-01-1.05127674e-01 4.30295697e+02]
[-6.08491276e-04-2.44792762e-04 1.00000000 E+00]]
[[1.00000000e+007.86948944e-143.26867045e-11]
[-1.97539704e-15 1.00000000 E+00 2.21256273e-12]
[-1.66808096e-17 2.63331746e-17 1.00000000 E+00]]
[[9.99251381e-01-1.62125888e-02 9.64392151e-01]
[4.68674990e-04 9.92419459e-01 8.32263570e-01]
[4.55530113e-07-1.82475555e-05 1.00000000 E+00]]