2019独角兽企业重金招聘Python工程师标准>>>

一、原图

1.jpg                                        2.jpg                                            3.jpg

 二、拼接效果

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

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

 三、源代码(一)

#include <cv.h>
#include <highgui.h>
#include <stdlib.h>
#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 <iostream>
#include <fstream>
#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<Mat> imgs;for(int i=0;i<3;++i)     {          Mat img=imread(srcFile[i]);          if (img.empty())          {              cout<<"Can't read image '"<<srcFile[i]<<"'\n";              system("pause");              return -1;           }         imgs.push_back(img);     }cout<<"Please wait..."<<endl;     Mat pano;     Stitcher stitcher = Stitcher::createDefault(false);     Stitcher::Status status = stitcher.stitch(imgs, pano);if (status != Stitcher::OK)     {          cout<<"Can't stitch images, error code=" <<int(status)<<endl;          system("pause");         return -1;     }imwrite(dstFile, pano);    namedWindow("Result");     imshow("Result",pano);  waitKey(0);    destroyWindow("Result");system("pause");     return 0;
}

注:

1、原始图片(1,2,3)来源http://blog.csdn.net/yang_xian521/article/details/7589431,缩放至1/4

2、代码(一)参考http://www.cnblogs.com/CBDoctor/archive/2011/09/19/2180998.html ,有较小改动

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

转载于:https://my.oschina.net/xiaot99/blog/226589

OpenCV图片拼接相关推荐

  1. opencv 图片拼接;OpenCvSharp图片拼接;C# 版opencv 图片拼接;C# 图片拼接

    opencv 图片拼接:OpenCvSharp图片拼接 先看效果图: 核心代码: //普通拼接: Mat srcImg1 = new Mat(strImg1);Mat srcImg2 = new Ma ...

  2. python opencv图片拼接、特征点匹配

    一.算法目的: 在同一位置拍摄的两幅或者多幅图像是单应性相关的的,使用该约束将很多图片缝补起来,拼成一个大的图像来创建全景图像.两张图片的拼接必须首先找到相同特征,也就是说两张照片必须要有重叠的部分才 ...

  3. python opencv图片拼接融合

    这几天在做图片的拼接融合,参考了网上的一个教程,文章末尾附上链接,处理效果还是不错的,但是速度比较慢. 总结一下思路: 1.读取两张图片,做边界填充,这个根据自己图片的融合范围自己调整(要求两个图片大 ...

  4. Python使用OpenCV拼接图片

    python, opencv, 图片拼接, 视觉 作者:草小诚(wellsmile@foxmail.com) 转载请注原文地址:https://blog.csdn.net/cxcjoker7894/a ...

  5. Android 利用OpenCV 的Stitcher做全景图片拼接(支持平面和球面)

    开发项目中遇到一个需求 就是用手机按照顺序拍几张图片 然后将图片拼接成一张全景的照片 百度了一下 看到OpenCV 的Stitcher工具支持全景图片拼接 于是研究了一下OpenCV  花了差不多一周 ...

  6. 海思篇之基于openCV的png图片拼接

    一.拼接原理 我们在现实中要把两张图片或横或竖地排列在一起,则首先要有一个平整的桌面或者一块平整的面板,这在编程中也一样的,而这个平整的面就是图层,或者可以理解为一张更大的矩形图片,这个矩形图片大到可 ...

  7. opencv实践项目-图片拼接之缝合线算法

    目录 1. stitcher_detail执行过程 2. 源码 3. stitching_detail 程序接口介绍 4. 执行 5. 结果图 1. stitcher_detail执行过程 stitc ...

  8. Opencv项目实战:04 全景图片拼接

    1,效果展示 首先,需要拍摄像这种的图片(当然,大家用我这的就可以了,我实在是太了解大家了). 接下来,我们来看看拼接的效果图: 效果非常的棒,那我们再来看看,不同大小的图片的拼接效果 除了缺失的角, ...

  9. 图片拼接2-基于opencv的stitching

    opencv官方给了两个例子,请参考 例子1 #include "opencv2/imgcodecs.hpp" #include "opencv2/highgui.hpp ...

最新文章

  1. B - Paint The Wall HDU - 4391[分块hash+tag标记]
  2. boost::callable_traits添加member左值引用
  3. 加个属性让div成纵向横向无缝滚动(支持IE和FF)
  4. 美团电单车中标警用车采购项目,上千辆定制版警用电单车上线!
  5. python正则表达式03--字符串中匹配数字
  6. VS2008安装后无法安装office2007的解决办法
  7. yum安装软件提示Another app is currently holding the yum lock
  8. Python基础知识 D2
  9. 知网查重报告html乱码,知网查重报告出现乱码怎么办
  10. MFC访问共享文件夹
  11. RabbitMQ使用教程(超详细)
  12. linux下实现文件双向同步 unsion,unison做数据双向同步
  13. Didn't find class ...l on path: DexPathList
  14. qemu与宿主机网络通信配置
  15. tp5.1 保利威视 云课堂 三分屏 PC直播DEMO(不适合普通直播)
  16. h5难做吗_这样的h5制作难吗,通过什么平台可以做出来?
  17. 运维派 企业面试题3 为上题中的 十个随机字母_test.html 文件 更名
  18. 强化学习paper绘图技巧——改进smooth
  19. ABM410-ASEMI贴片整流桥ABM410
  20. 各种wifi共享妙招汇总

热门文章

  1. 开关量、数字量、模拟量、脉冲量的区别
  2. 3、微信小程序-通信
  3. Unity项目-黑魂复刻(四)玩家控制器(翻滚以及跳跃操作改动)
  4. 关于Windows无法格式化该卷,因为该卷已脱机的问题解决办法
  5. C# Socket 长连接设置Keepalive
  6. Type-C保温杯取电方案
  7. 销售谈判技巧培训分享
  8. 520特别企划 | Z世代进入婚恋市场,婚恋交友行业会有什么变化?​
  9. 财务学python还是vba_各位大佬好,财务分析,要使用BI,VBA,Python,Wind学习那个可以对财务工作更加有益?...
  10. 计算机专业硕士学费,2015计算机工程硕士专业学费汇总