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使用MD5加密字符串示例
Aug 22 Python
Python脚本判断 Linux 是否运行在虚拟机上
Apr 25 Python
Python中的ConfigParser模块使用详解
May 04 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
python 实时遍历日志文件
Apr 12 Python
Python 逐行分割大txt文件的方法
Oct 10 Python
python实现简易云音乐播放器
Jan 04 Python
Python进阶之自定义对象实现切片功能
Jan 07 Python
使用python脚本自动创建pip.ini配置文件代码实例
Sep 20 Python
python和js交互调用的方法
Jun 23 Python
基于Python实现简单学生管理系统
Jul 24 Python
Python 实现RSA加解密文本文件
Dec 30 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
用PHP制作的意见反馈表源码
2007/03/11 PHP
php 数组的指针操作实现代码
2011/02/08 PHP
PHP获取二维数组中某一列的值集合
2015/12/25 PHP
别了 JavaScript中的isXX系列
2012/08/01 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
BootStrap3使用错误记录及解决办法
2016/12/22 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
JS数组交集、并集、差集的示例代码
2017/08/23 Javascript
JS写谷歌浏览器chrome的外挂实例
2018/01/11 Javascript
使用webpack编译es6代码的方法步骤
2019/04/28 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
python实现while循环打印星星的四种形状
2019/11/23 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
django正续或者倒序查库实例
2020/05/19 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
Too Faced官网:美国知名彩妆品牌
2017/03/07 全球购物
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
大学生党课思想汇报
2013/12/29 职场文书
个人函授自我鉴定
2014/03/25 职场文书
三提三创主题教育活动查摆整改措施
2014/10/25 职场文书
2015年信息化建设工作总结
2015/07/23 职场文书
交通安全主题班会
2015/08/12 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang