cv.findHomography 的结果有些扭曲/拉伸

问题描述

带有关键点(绿点)的源图像(相机视图)是:

enter image description here

具有相应关键点(绿点)的目标图像(顶视图)是:

enter image description here

转换合并后的图片(俯视图)为:

enter image description here

让我烦恼的是,玩家离得越远(相对于相机),他们变得越“伸展”(比较源图像和目标图像之间的红圈玩家)。 在上端,甚至缺少一些播放器,这让我相信 H 矩阵:

$$ H = \left[ \begin{数组}{cccc} -0.07597200563 & -0.883808889 & 306.0068\ -0.05874844307 & -1.283603761 & 635.3404\ -0.00005440938 & -0.002732269 & 1.0000 \end{数组} \right] $$

错了。我用来计算 H 的 python 代码是:

src_list = [[1627,481],[1843,491],[1060,449],[140,472],[813,451],[1122,499],[307,574],[1332,460],[1482,529],[895,478],[1916,[1913,567],[6,643],[319,467]]
dst_list = [[608,187],[606,232],[603,12],[387,1],[518,2],[520,166],[373,208],[616,88],251],[519,87],[607,258],[522,314],[347,[420,3]]
src_pts = np.array(src_list).reshape(-1,1,2)
dst_pts = np.array(dst_list).reshape(-1,2)
H,mask = cv.findHomography(src_pts,dst_pts,cv.RANSAC,5.0)

有没有办法计算不在运动场平面内的身体部位(例如肩部)的变形量?毕竟,我可以安全地假设飞机和一些玩家肩膀之间的大约距离是人类的平均身高。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...