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执行等待程序直到第二天零点的方法
Apr 23 Python
python检查字符串是否是正确ISBN的方法
Jul 11 Python
Python 含参构造函数实例详解
May 25 Python
python OpenCV学习笔记之绘制直方图的方法
Feb 08 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
May 30 Python
python一键去抖音视频水印工具
Sep 14 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
Oct 11 Python
使用python3实现操作串口详解
Jan 01 Python
Python数据类型之Dict字典实例详解
May 07 Python
PyTorch 解决Dataset和Dataloader遇到的问题
Jan 08 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
Apr 14 Python
python字符串常规操作大全
May 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
php入门学习知识点六 PHP文件的读写操作代码
2011/07/14 PHP
PHP 第一节 php简介
2012/04/28 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
php使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
鼠标图片振动代码
2006/07/06 Javascript
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
input按钮的事件处理大全
2010/12/10 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
8个超实用的jQuery功能代码分享
2015/01/08 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
JS实现读取xml内容并输出到div中的方法示例
2018/04/19 Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
2018/11/21 Javascript
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
JS实现打砖块游戏
2020/02/14 Javascript
python正则表达式抓取成语网站
2013/11/20 Python
python编写分类决策树的代码
2017/12/21 Python
Python中利用aiohttp制作异步爬虫及简单应用
2018/11/29 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
python如何从文件读取数据及解析
2019/09/19 Python
Python定义函数实现累计求和操作
2020/05/03 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
python 实现IP子网计算
2021/02/18 Python
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
会议开场欢迎词
2014/01/15 职场文书
董事长助理工作职责
2014/06/08 职场文书
超强台风观后感
2015/06/09 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
Python借助with语句实现代码段只执行有限次
2022/03/23 Python