python+OpenCV实现图像拼接


Posted in Python onMarch 05, 2020

本文实例为大家分享了利用python和OpenCV实现图像拼接,供大家参考,具体内容如下

python+OpenCV实现image stitching

在最新的OpenCV官方文档中可以找到C++版本的Stitcher类的说明, 但是python版本的还没有及时更新, 本篇对python版本的实现做一个简单的介绍.

由于官方文档中还没有python版本的Stitcher类的说明, 因此只能自己去GitHub源码上找, 以下是stitching的样例:

from __future__ import print_function
import cv2 as cv
import numpy as np
import argparse
import sys

modes = (cv.Stitcher_PANORAMA, cv.Stitcher_SCANS)

parser = argparse.ArgumentParser(description='Stitching sample.')
parser.add_argument('--mode',
 type = int, choices = modes, default = cv.Stitcher_PANORAMA,
 help = 'Determines configuration of stitcher. The default is `PANORAMA` (%d), '
   'mode suitable for creating photo panoramas. Option `SCANS` (%d) is suitable '
   'for stitching materials under affine transformation, such as scans.' % modes)
parser.add_argument('--output', default = 'result.jpg',
 help = 'Resulting image. The default is `result.jpg`.')
parser.add_argument('img', nargs='+', help = 'input images')
args = parser.parse_args()

# read input images
imgs = []
for img_name in args.img:
 img = cv.imread(img_name)
 if img is None:
  print("can't read image " + img_name)
  sys.exit(-1)
 imgs.append(img)

stitcher = cv.Stitcher.create(args.mode)
status, pano = stitcher.stitch(imgs)

if status != cv.Stitcher_OK:
 print("Can't stitch images, error code = %d" % status)
 sys.exit(-1)

cv.imwrite(args.output, pano);
print("stitching completed successfully. %s saved!" % args.output)

上面写了一大堆, 然鹅, 直接拿来用的话, 用下面的代码可以了, 简单粗暴

import numpy as np
import cv2
from cv2 import Stitcher

if __name__ == "__main__":
 img1 = cv2.imread('1.jpg')
 img2 = cv2.imread('2.jpg')
 stitcher = cv2.createStitcher(False)
 #stitcher = cv2.Stitcher.create(cv2.Stitcher_PANORAMA), 根据不同的OpenCV版本来调用
 (_result, pano) = stitcher.stitch((img1, img2))
 cv2.imshow('pano',pano)
 cv2.waitKey(0)

效果如下:

原图:

python+OpenCV实现图像拼接

python+OpenCV实现图像拼接

拼接后的图像:

python+OpenCV实现图像拼接

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python逐行读写txt文件的实例讲解
Apr 03 Python
详解Django之admin组件的使用和源码剖析
May 04 Python
Python+selenium 获取一组元素属性值的实例
Jun 22 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
在Pycharm中自动添加时间日期作者等信息的方法
Jan 16 Python
python ---lambda匿名函数介绍
Mar 13 Python
在Python中获取操作系统的进程信息
Aug 27 Python
pytorch1.0中torch.nn.Conv2d用法详解
Jan 10 Python
TensorFlow tensor的拼接实例
Jan 19 Python
python 模拟登录B站的示例代码
Dec 15 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 Python
在Windows下安装配置CPU版的PyTorch的方法
Apr 02 Python
windows下Pycharm安装opencv的多种方法
Mar 05 #Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
Mar 05 #Python
浅谈Python的方法解析顺序(MRO)
Mar 05 #Python
python环境下安装opencv库的方法
Mar 05 #Python
Python序列化pickle模块使用详解
Mar 05 #Python
Window系统下Python如何安装OpenCV库
Mar 05 #Python
Python bytes string相互转换过程解析
Mar 05 #Python
You might like
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
2015/07/29 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
用JS实现的一个include函数
2007/07/21 Javascript
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
jquery $.each()使用探讨
2013/09/23 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
vue better scroll 无法滚动的解决方法
2018/06/07 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
Django和Flask框架优缺点对比
2019/10/24 Python
如何利用python生成MD5并去重
2020/12/07 Python
HTML5 中新的全局属性(整理)
2013/07/31 HTML / CSS
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
泰国时尚电商:POMELO Fashion
2020/03/11 全球购物
学生会感恩节活动方案
2014/10/11 职场文书
银行员工考核评语
2014/12/31 职场文书
工程质量保证书
2015/05/09 职场文书
不同意离婚答辩状
2015/05/22 职场文书
狂人日记读书笔记
2015/06/30 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
python 判断文件或文件夹是否存在
2022/03/18 Python