博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenCV图片拼接的两种方法
阅读量:5224 次
发布时间:2019-06-14

本文共 1743 字,大约阅读时间需要 5 分钟。

https://my.oschina.net/xiaot99/blog/226589

一、原图

全景? OpenCV图片拼接 - von.Ryan.Hack - fengyhack@netease全景? OpenCV图片拼接 - von.Ryan.Hack - fengyhack@netease全景? OpenCV图片拼接 - von.Ryan.Hack - fengyhack@netease

                    1.jpg                                        2.jpg                                            3.jpg

 二、拼接效果

1、拼接效果之一:简单拼接,有重叠,看着不太舒服

全景? OpenCV图片拼接 - von.Ryan.Hack - fengyhack@netease

 

 2、拼接效果之二:高级拼接,这下貌似好多了

全景? OpenCV图片拼接 - von.Ryan.Hack - fengyhack@netease

 三、源代码(一)

#include 
#include
#include
#pragma comment(lib,"opencv_core245.lib") #pragma comment(lib,"opencv_highgui245.lib") int main(){ char* file[3]={ "1.jpg","2.jpg","3.jpg"};//3张原始图片 IplImage* pImg[3]; int i; for(i=0;i<3;++i) pImg[i]=cvLoadImage(file[i]); int sw=pImg[0]->width; int sh=pImg[0]->height; IplImage* dstImg = cvCreateImage(cvSize(sw*3,sh),pImg[0]->depth,pImg[0]->nChannels); cvZero(dstImg); printf("Please wait...\n"); for(i=0;i<3;++i) { cvSetImageROI(dstImg, cvRect(i*sw,0,sw,sh)); cvCopy(pImg[i], dstImg); cvResetImageROI(dstImg); } cvNamedWindow("dstImg"); cvShowImage("dstImg", dstImg); cvSaveImage("result1.jpg",dstImg);//拼接图片之一 cvWaitKey(0); for(i=0;i<3;++i) cvReleaseImage(&pImg[i]); cvReleaseImage(&dstImg); cvDestroyWindow("dstImg"); system("pause"); return 0; }

 

2、源代码(二)

#include 
#include
#include "opencv2/highgui/highgui.hpp "#include "opencv2/stitching/stitcher.hpp" using namespace std; using namespace cv; #pragma comment(lib,"opencv_core245.lib") #pragma comment(lib,"opencv_highgui245.lib") #pragma comment(lib,"opencv_stitching245.lib") int main(void) { string srcFile[3]={ "1.jpg","2.jpg","3.jpg"}; string dstFile="result.jpg"; vector
imgs; for(int i=0;i<3;++i) { Mat img=imread(srcFile[i]); if (img.empty()) { cout<<"Can't read image '"<
<<"'\n"; system("pause"); return -1; } imgs.push_back(img); } cout<<"Please wait..."<

 

注:

1、原始图片(1,2,3)来源,缩放至1/4

2、代码(一)参考 ,有较小改动

3、代码(二)参考OpenCV自带samples\cpp\stitching.cpp,改动较大

 

转载于:https://www.cnblogs.com/jukan/p/6297894.html

你可能感兴趣的文章
【练习】使用事务和锁定语句
查看>>
centos7升级firefox的flash插件
查看>>
jmeter系列二(jmeter engine相关)
查看>>
一份超全超详细的 ADB 用法大全
查看>>
WebView 调试
查看>>
IB使用
查看>>
Apache Common-IO 使用
查看>>
apidoc
查看>>
关于 ++x 和 x++ 比较难的一个例子
查看>>
第三次作业 105032014021
查看>>
记录一些容易忘记的属性 -- UILabel
查看>>
STL之map UVa156
查看>>
再谈Vmware NAT的配置和路由流程
查看>>
javaScript数组去重方法汇总
查看>>
评价意见整合
查看>>
二、create-react-app自定义配置
查看>>
Android PullToRefreshExpandableListView的点击事件
查看>>
系统的横向结构(AOP)
查看>>
linux常用命令
查看>>
NHibernate.3.0.Cookbook第四章第6节的翻译
查看>>