4路鱼眼镜头拍摄的视频的拼接融合

十里银滩 2016-06-16 10:16:19
有没有做视频拼接融合的啊,就是把4个角度的鱼眼拍摄的视频拼接成一个全景视频,想找个人做PC端的视频融合软件。
镜头角度是固定的
...全文
4170 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ515311445 2018-10-17
  • 打赏
  • 举报
回复
上面的算法都不行,没法做到实时拼接,我已经在android, linux, windows三个平台上做到了全景视频实时拼接
QQ515311445 2018-07-12
  • 打赏
  • 举报
回复
引用 9 楼 u012655779 的回复:
楼主加我 1045194106 我做拼接 一起讨论 各位层主也加一下 我们一起交流交流


引用 楼主 u012871299 的回复:
有没有做视频拼接融合的啊,就是把4个角度的鱼眼拍摄的视频拼接成一个全景视频,想找个人做PC端的视频融合软件。
镜头角度是固定的

两个的我们15年就做了, 四个的我一个朋友也做过, 四个的好像麻烦多了
lhxldylq1990 2017-02-09
  • 打赏
  • 举报
回复
楼主加我 1045194106 我做拼接 一起讨论 各位层主也加一下 我们一起交流交流
nemo2011 2016-10-24
  • 打赏
  • 举报
回复
引用 7 楼 qq_36207341 的回复:
[quote=引用 3 楼 nemo2011 的回复:] [quote=引用 2 楼 wangyaninglm 的回复:] 合并全景视频: stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitcher类当中。这个类当中我们可能用到的成员函数有createDefault、estimateTransform、composePanorama、stitch。其内部实现的过程是非常繁琐的,需要很多算法的支持,包括图像特征的寻找和匹配,摄像机的校准,图像的变形,曝光补偿和图像融合。但这些模块的接口、调用,强大的OpenCV都为我们搞定了,我们使用OpenCV做图像拼接,只需要调用createDefault函数生成默认的参数,再使用stitch函数进行拼接就ok了。就这么简单!estimateTransform和composePanorama函数都是比较高级的应用,如果各位对stitching的流程不是很清楚的话,还是慎用。
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/stitching/stitcher.hpp"


using namespace std;
using namespace cv;

bool try_use_gpu = false;
vector<Mat> imgs;
string result_name = "result.jpg";

//void printUsage();
//int parseCmdArgs(int argc, char** argv);

int main(int argc, char* argv[])
{

Mat img=imread("1.jpg");
imgs.push_back(img);
img=imread("2.jpg");
imgs.push_back(img);
img=imread("3.jpg");
imgs.push_back(img);

Mat pano;
Stitcher stitcher = Stitcher::createDefault(try_use_gpu);
Stitcher::Status status = stitcher.stitch(imgs, pano);

if (status != Stitcher::OK)
{
cout << "Can't stitch images, error code = " << int(status) << endl;
return -1;
}

imwrite(result_name, pano);
return 0;
}
这个拼接速度很慢的。图片拼接可能是没有问题,但是楼主说的是视频流,该Stitch类是达不到要求的。[/quote] 四个传感器的拼接用一个简单的stitch是行不通的,如果兄弟对整个stitch类用的很娴熟,欢迎指教[/quote]
引用 7 楼 qq_36207341 的回复:
[quote=引用 3 楼 nemo2011 的回复:] [quote=引用 2 楼 wangyaninglm 的回复:] 合并全景视频: stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitcher类当中。这个类当中我们可能用到的成员函数有createDefault、estimateTransform、composePanorama、stitch。其内部实现的过程是非常繁琐的,需要很多算法的支持,包括图像特征的寻找和匹配,摄像机的校准,图像的变形,曝光补偿和图像融合。但这些模块的接口、调用,强大的OpenCV都为我们搞定了,我们使用OpenCV做图像拼接,只需要调用createDefault函数生成默认的参数,再使用stitch函数进行拼接就ok了。就这么简单!estimateTransform和composePanorama函数都是比较高级的应用,如果各位对stitching的流程不是很清楚的话,还是慎用。
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/stitching/stitcher.hpp"


using namespace std;
using namespace cv;

bool try_use_gpu = false;
vector<Mat> imgs;
string result_name = "result.jpg";

//void printUsage();
//int parseCmdArgs(int argc, char** argv);

int main(int argc, char* argv[])
{

Mat img=imread("1.jpg");
imgs.push_back(img);
img=imread("2.jpg");
imgs.push_back(img);
img=imread("3.jpg");
imgs.push_back(img);

Mat pano;
Stitcher stitcher = Stitcher::createDefault(try_use_gpu);
Stitcher::Status status = stitcher.stitch(imgs, pano);

if (status != Stitcher::OK)
{
cout << "Can't stitch images, error code = " << int(status) << endl;
return -1;
}

imwrite(result_name, pano);
return 0;
}
这个拼接速度很慢的。图片拼接可能是没有问题,但是楼主说的是视频流,该Stitch类是达不到要求的。[/quote] 四个传感器的拼接用一个简单的stitch是行不通的,如果兄弟对整个stitch类用的很娴熟,欢迎指教[/quote] 对stich类使用不熟悉。只是了解。 但是对四个摄像头做图像拼接方法却又兴趣,无奈现在还未找到合适的方法。请指教。
qq_36207341 2016-09-22
  • 打赏
  • 举报
回复
引用 3 楼 nemo2011 的回复:
[quote=引用 2 楼 wangyaninglm 的回复:] 合并全景视频: stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitcher类当中。这个类当中我们可能用到的成员函数有createDefault、estimateTransform、composePanorama、stitch。其内部实现的过程是非常繁琐的,需要很多算法的支持,包括图像特征的寻找和匹配,摄像机的校准,图像的变形,曝光补偿和图像融合。但这些模块的接口、调用,强大的OpenCV都为我们搞定了,我们使用OpenCV做图像拼接,只需要调用createDefault函数生成默认的参数,再使用stitch函数进行拼接就ok了。就这么简单!estimateTransform和composePanorama函数都是比较高级的应用,如果各位对stitching的流程不是很清楚的话,还是慎用。
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/stitching/stitcher.hpp"


using namespace std;
using namespace cv;

bool try_use_gpu = false;
vector<Mat> imgs;
string result_name = "result.jpg";

//void printUsage();
//int parseCmdArgs(int argc, char** argv);

int main(int argc, char* argv[])
{

Mat img=imread("1.jpg");
imgs.push_back(img);
img=imread("2.jpg");
imgs.push_back(img);
img=imread("3.jpg");
imgs.push_back(img);

Mat pano;
Stitcher stitcher = Stitcher::createDefault(try_use_gpu);
Stitcher::Status status = stitcher.stitch(imgs, pano);

if (status != Stitcher::OK)
{
cout << "Can't stitch images, error code = " << int(status) << endl;
return -1;
}

imwrite(result_name, pano);
return 0;
}
这个拼接速度很慢的。图片拼接可能是没有问题,但是楼主说的是视频流,该Stitch类是达不到要求的。[/quote] 四个传感器的拼接用一个简单的stitch是行不通的,如果兄弟对整个stitch类用的很娴熟,欢迎指教
bluewanderer 2016-06-22
  • 打赏
  • 举报
回复
引用 5 楼 nemo2011 的回复:
[quote=引用 4 楼 wangyaninglm 的回复:] 那就不要拼接了,四个图片生成一个图片?矫正运算什么的/
???[/quote] 这种东西四个摄像头的的的形变是恒定的,摄像头在使用中的空间相对位置是不会有大变化。所以CV算法参与的最多只是获得摄像头位置微小偏移的校准参数,后面就是没啥运算量的CG逻辑了。
nemo2011 2016-06-21
  • 打赏
  • 举报
回复
引用 4 楼 wangyaninglm 的回复:
那就不要拼接了,四个图片生成一个图片?矫正运算什么的/
???
shiter 2016-06-20
  • 打赏
  • 举报
回复
那就不要拼接了,四个图片生成一个图片?矫正运算什么的/
nemo2011 2016-06-20
  • 打赏
  • 举报
回复
引用 2 楼 wangyaninglm 的回复:
合并全景视频: stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitcher类当中。这个类当中我们可能用到的成员函数有createDefault、estimateTransform、composePanorama、stitch。其内部实现的过程是非常繁琐的,需要很多算法的支持,包括图像特征的寻找和匹配,摄像机的校准,图像的变形,曝光补偿和图像融合。但这些模块的接口、调用,强大的OpenCV都为我们搞定了,我们使用OpenCV做图像拼接,只需要调用createDefault函数生成默认的参数,再使用stitch函数进行拼接就ok了。就这么简单!estimateTransform和composePanorama函数都是比较高级的应用,如果各位对stitching的流程不是很清楚的话,还是慎用。
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/stitching/stitcher.hpp"


using namespace std;
using namespace cv;

bool try_use_gpu = false;
vector<Mat> imgs;
string result_name = "result.jpg";

//void printUsage();
//int parseCmdArgs(int argc, char** argv);

int main(int argc, char* argv[])
{

Mat img=imread("1.jpg");
imgs.push_back(img);
img=imread("2.jpg");
imgs.push_back(img);
img=imread("3.jpg");
imgs.push_back(img);

Mat pano;
Stitcher stitcher = Stitcher::createDefault(try_use_gpu);
Stitcher::Status status = stitcher.stitch(imgs, pano);

if (status != Stitcher::OK)
{
cout << "Can't stitch images, error code = " << int(status) << endl;
return -1;
}

imwrite(result_name, pano);
return 0;
}
这个拼接速度很慢的。图片拼接可能是没有问题,但是楼主说的是视频流,该Stitch类是达不到要求的。
shiter 2016-06-19
  • 打赏
  • 举报
回复
合并全景视频: stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitcher类当中。这个类当中我们可能用到的成员函数有createDefault、estimateTransform、composePanorama、stitch。其内部实现的过程是非常繁琐的,需要很多算法的支持,包括图像特征的寻找和匹配,摄像机的校准,图像的变形,曝光补偿和图像融合。但这些模块的接口、调用,强大的OpenCV都为我们搞定了,我们使用OpenCV做图像拼接,只需要调用createDefault函数生成默认的参数,再使用stitch函数进行拼接就ok了。就这么简单!estimateTransform和composePanorama函数都是比较高级的应用,如果各位对stitching的流程不是很清楚的话,还是慎用。
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/stitching/stitcher.hpp"


using namespace std;
using namespace cv;

bool try_use_gpu = false;
vector<Mat> imgs;
string result_name = "result.jpg";

//void printUsage();
//int parseCmdArgs(int argc, char** argv);

int main(int argc, char* argv[])
{

Mat img=imread("1.jpg");
imgs.push_back(img);
img=imread("2.jpg");
imgs.push_back(img);
img=imread("3.jpg");
imgs.push_back(img);

Mat pano;
Stitcher stitcher = Stitcher::createDefault(try_use_gpu);
Stitcher::Status status = stitcher.stitch(imgs, pano);

if (status != Stitcher::OK)
{
cout << "Can't stitch images, error code = " << int(status) << endl;
return -1;
}

imwrite(result_name, pano);
return 0;
}
赵4老师 2016-06-16
  • 打赏
  • 举报
回复
Google上有开源代码拼接照片参考之?
全景图像拼接是将多幅有重叠区域的图像拼接成全视角360o的平面图像。全景图像拼接技术是一种基于图像绘制技术、图像处理及计算机几何学等多领域的综合技术,由于对硬件要求低,真实感较好等优点,是目前虚拟现实、三维重建等的重点研究方向。鱼眼图像是通过在相机上安装超广视角的鱼眼镜头拍摄,具有视域广,一次成像为非线性图像的特点,比普通视觉图像拼接所需的原图像少,效率高,但拼接难度大。 本文介绍了鱼眼图像拼接技术的研究背景、应用领域。重点研究了图像拼接技术中的鱼眼桶形畸变校正、投影变换理论、SIFT匹配以及图像融合等技术,对比分析了它们的理论基础、实现方式、运算性能以及还有的不足。 鱼眼图像形变严重,首先需要校正为符合人类视觉的线性图像。针对传统的经纬度校正法还存在一定拱形失真的问题,本文提出了渐进方程校正法,此方法不考虑用镜头参数来构建复杂的投影模型,完成鱼眼图像的校正,单帧图像视觉效果较好且更利于拼接;针对多帧图像的拼接问题,考虑到鱼眼图像的特点,只截取每帧图像的部分区域进行定位匹配,在此区域进行SIFT特征的全景图像拼接,运算量比全局SIFT算法大幅减少,耗时相应降低;为生成实际景物连贯的全景图像,本文采用柱面投影变换,为了解决投影变换后图像产生阶梯现象,文中对比了几种常用算法,并采用双线性插值算法有效解决该问题;在图像融合过程中,分析比较了几种经典算法,选择渐入渐出融合算法对待拼接的图像进行处理,使得拼接后图像重叠区域过渡平滑,基本实现无缝拼接,在图像处理的速度和效果达到一定的均衡。 最后,为了便于全景图像的理解和观察,本文还设计了全景柱形环绕浏览人机交互界面,实现了垂直180o,水平360o空间的动态环绕视觉观察。
360全景图制作软件造景师 造景师软件是一款行业领先的专业360全景图制作软件,让您仅需花费2-5分钟即可轻松拼合一幅高质量的360度全景图。 另外您也可以发布一个Flash全景展示或者是html5全景展示观看。软件支持鱼眼照片和普通照片的全景拼合, 另外支持批量拼合、HDR、全景图像明暗自动融合等功能。 软件主要用于房产楼盘展示、旅游景点展示、 宾馆酒店展示、校园风光展示等专业三维全景展示制作。 360全景图制作软件造景师 造景师软件功能: 1、完美补地功能:新增斜拍补地功能,可以修补黑洞,去掉地面的三脚架。 2、Html5播放器,支持分级分块,支持WebGLHtml5播放器观看更流畅。 3、支持GPU加速:支持拼合过程中支持GPU加速,让拼合速度更快。 4、蒙版功能:造景师的蒙版功能,可以对拼合的全景图某些部分场景做显示/隐藏, 5、小行星效果:造景师支持发布小行星特效,并且最新版可以将小行星图片保存起来,为用户提供更好的体验, 6、支持百度地图:造景师支持百度地图组件,可以在三维全景中嵌入百度电子地图。 7、支持导入带有为经纬度信息图片:造景师支持导入带有经纬度信息的图片,并且可以在百度地图中自动定位当前场景位置。 8、支持全景图分享:造景师支持将拼合好的全景图分享到城市吧街景平台。 9、支持多种发布格式:造景师支持发flashvr格式、html5格式,并且最新版本支持在IOS、部分android系统上观看,支持发布球形全景图、柱形全景图、立方体全景图。 10、支持添加热点功能用户可以在场景中添加热点,点击热点可以弹出图像或者打开网页。 11、支持移除三脚架:造景师支持移除三脚架功能,通过移除三脚架功能用户可以直接取出三维场景底部的三脚架。 12、自定义的等待窗口:造景师支持了自定义等待窗口功能,用户可以根据需求来设计定义等待窗口。 13、自定义按钮组件:造景师支持了定义按钮组件功能,用户可以根据需求来设计按钮组件。 14、提供分块下载功能 :造景师企业版提供了分块下载功能,用户在打开全景图案例时,立即显示由模糊逐渐变清晰的全景图,无需再有等待界面。分块下载、逐步清晰的效果,能够使观者获得更佳的观看体验。 15、支持导入Raw格式的图片,生成更高质量的全景图 :数码相机的存储格式除了JPEG、TIFF外,还有RAW格式。用RAW格式拍摄的图像文件保留了CCD捕获图像时最原始、最无损的信息。 16、标准镜头以及广角镜头等图片拼合:造景师企业版支持鱼眼照片拼合和普通广角照片拼合,可以处理单行或者多行的图像,而且可以自动识别图像类型,不需要手动选择设置图像类型,造景师企业版的推出,使全景制作者们在硬件方面有了更丰富的选择,操作时候更加方便。 17、支持SmartBlend混色缝合:造景师企业版鱼眼模块支持SmartBlend混色缝合,smartblend主要用于全景图像的无缝拼接,可以有效处理图片拼合时由视差、亮度差异以及运动物体造成的问题。 18、支持独立批处理 :造景师支持批量拼合、批量转换、批量发布,最新版本支持导入文件夹,另外新版本还支持包围曝光批处理,很多用户往往需要拍摄大量的鱼眼图片进行拼合,造景师企业版提供了独立批处理功能,实现方法很简单,只需打开软件的批处理模块即可自动批处理生成全景图。这样即可在工作之余、无人看管的情况下,全自动的进行批量拼合,造景师10.6批处理球立转换增加了JPG压缩质量设置功能。 19、支持HDR: 用户可以将拼合前图片或者拼合后全景图进行HDR处理,得到一组精美的全景图,新版本也同时优化了HDR模块的用户体验。 360全景图制作软件造景师 造景师软件截图

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧