neozhaoliang / surround-view-system-introduction

A full Python implementation for real car surround view system
MIT License
857 stars 303 forks source link

拼接时图像的缩放率不一致,以及具体的修改标志点的鸟瞰图的像素坐标的代码位置以及先后顺序 #51

Closed Dizzy-TCP closed 1 year ago

Dizzy-TCP commented 1 year ago

2023-02-10 12-17-01 的屏幕截图

想问下python run_get_projection_maps.py -camera前后左右后面跟的具体参数值,不知道为什么我拼接的图像底部那一块缩放率和其他三块完全不一样(我选择的-scale都是 0.7 0.8,标志点设置的顺序相同均为(左上,右上,左下,右下)只有最后两个shift参数值不同)

手动修改标志点的像素坐标是在代码的哪个地方(是文档里面project_keypoints的地方吗?),以及是在确定四个标志点生成单独鸟瞰图之后再修改鸟瞰图中的像素坐标,(这一整块都不是很明白) 感谢作者大大解答

neozhaoliang commented 1 year ago

shift 和 scale 的含义你需要去看那个 OpenCV 函数的接口才能理解。

手动修改标志点的像素坐标是在代码的哪个地方(是文档里面project_keypoints的地方?)

是的。

以及是在确定四个标志点生成单独鸟瞰图之后再修改鸟瞰图中的像素坐标

你在 keypoints 里面设置的是标志点在地面上的坐标,原点为你设置的鸟瞰范围的左上角。你点击的是它们在图片里的对应像素。

Dizzy-TCP commented 1 year ago

你在 keypoints 里面设置的是标志点在地面上的坐标,原点为你设置的鸟瞰范围的左上角。你点击的是它们在图片里的对应像素。 这个地方我还是不太明白,在run_get_projection_maps.py之后鼠标选择了四个标志点之后,命令行会显示四个标志点的坐标,文档里面说的“在程序中手动修改它们在鸟瞰图中的像素坐标”意思是将命令行显示的四个标志点的坐标改到project_keypoints那个地方吗?(刚刚通过不断尝试修改-scale 和 -shift,没有改程序中的任何坐标也获得了一个相对还行的鸟瞰图,但是比作者这个上传的 效果还是差远了)

neozhaoliang commented 1 year ago

建议你先理解鸟瞰图的原理:怎么求一个透视变换,将一张平视的图片转换为对地面的俯视?当然需要你建立图片上的像素和地面上坐标之间的对应,你点的像素就对应 keypoints 里面设置的地面点。