Skip to main content

stitcher for two fisheye camera

Project description

pano

全景图像拼接

原本是想解决网络遥控车的视角太小,不能有效观察周围情况问题,找到了广角镜头。 后来发现竟然可以用两个超过180°的摄像头拼接全景图片。

但是在网上没有找到效果好的实时全景传输项目,所以自己做一个。

我理解的全景图片生成应该主要是3个步骤 1、把图片摊平,这个步骤的学名未知。可能是将鱼眼原图(等角图片)展开成等距图片。 2、将两个鱼眼镜头的等距图分成3份,并进行水平拼接 3、拼接图按照给定的角度在还原成等角图

为了可以做到即时(30FPS),需要尽可能的提高效率。 目前最大的效率瓶颈是在拼接上。

调研拼接3张水平图片效率

技术上打算采用opencv 的 stitcher,先试试看。

opencv 用 4.X 吧,尽量用新一点的东西。

2023-05-24 进展

目前的拼接还是完全自己写的,原因是所有第三方提供的方案均不能有效的对我的图片进行拼接。 可能是我的参数有问题,但是我的需求相对简单并且我对拼接效率有要求,所以就自己写了。

写的过程还是挺顺利的,由于我的摄像头是背靠背绑在一起的,所以他们的水平同步和角度偏差是不大的,所以我放弃了拼接时进行旋转和扭曲。 拼接中对图片只有平移,这对图片首尾相连还是很有帮助的。

目前拼接的图片效果还是不错的,拼接效率上没有测试,从代码上看起来,应该是足够高效的。

封装思路

为了更加模块化,封装思路如下: 1、贯彻单视频流方案,虽然涉及拼装切分,单比起双倍的编码和解码,还是要好很多的。所以输入的视频流是两个摄像头的拼接视频流。 横向拼接,分辨率一致,帧率一致,编码一致,码率一致。 这里可以简化成输入两张(一张)图片,视频流的处理还是放到视频流的相关模块中。 2、校准主副镜头,由于目前的两个摄像头都是usb摄像头,usb的可插拔等特性导致,每次启动时,主副镜头的顺序都可能不一致,所以需要校准。 3、校准主副镜头的图像,即圆心+半径。这里由于是超级广角,所以图像是一个圆,但是随着镜头的物理位置不稳定,需要进行校准。这里会强制要求两个图片的半径一致,即获得的等距投影图分辨率一致。 4、拼接矫正,尝试用等距投影进行拼接。 以上校准全部保存校准结果至本地文件,当本地文件不存在,强制要求校准,否则不需要校准。如果有必要可以随时进行校准。 5、拼接输入图片,这是一个全流程,输入一张图片(横向拼接原图输入),输出一张图片(等距投影拼接)。

暂时封装成一个类。

2023-05-25 进展

基础功能完成,在比较合适的图片上表现还是挺好的,但是在一些特殊情况,比如校准时的距离与实际视频距离有较大变化的情况下,拼接效果就不好了。

所以可能需要手动或者自动进行不断的校准。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

u0_stitcher-0.1.5.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

u0_stitcher-0.1.5-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file u0_stitcher-0.1.5.tar.gz.

File metadata

  • Download URL: u0_stitcher-0.1.5.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for u0_stitcher-0.1.5.tar.gz
Algorithm Hash digest
SHA256 02c4e43c50e662afca4b28820bfecf1e3e1611505b474f76c0f98e317c468396
MD5 32fa2ba95910e0fd9858fe556fa59ac6
BLAKE2b-256 cada3317f9080e52afbaecb06d9fd9a36cf44717e58c17ae89cdce32b920473c

See more details on using hashes here.

File details

Details for the file u0_stitcher-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: u0_stitcher-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for u0_stitcher-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2f9517e4f2302ef2c64aa49c1280911bc7d3374f83bfa8acb250d5645af87c40
MD5 e4e4b0f1116c77603270947758f6a2cc
BLAKE2b-256 d645c4d3141e34afa1fbefc16f08657661862212fd622e6d7686673ebac9306a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page