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 01 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
Python+OpenCV让电脑帮你玩微信跳一跳
Jan 04 Python
Flask之请求钩子的实现
Dec 23 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
Aug 23 Python
用Python爬取QQ音乐评论并制成词云图的实例
Aug 24 Python
PyTorch中permute的用法详解
Dec 30 Python
Django模板之基本的 for 循环 和 List内容的显示方式
Mar 31 Python
python 绘制国旗的示例
Sep 27 Python
python实现图像随机裁剪的示例代码
Dec 10 Python
自己搭建resnet18网络并加载torchvision自带权重的操作
May 13 Python
Python 数据可视化神器Pyecharts绘制图像练习
Feb 28 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
基于mysql的bbs设计(一)
2006/10/09 PHP
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
基于PHP生成简单的验证码
2016/06/01 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
浅谈laravel数据库查询返回的数据形式
2019/10/21 PHP
ext form 表单提交数据的方法小结
2008/08/08 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
javascript计时器事件使用详解
2014/01/07 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
写jQuery插件时的注意点
2017/02/20 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
js判断节假日实例代码
2017/12/27 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
详解Vue.js在页面加载时执行某个方法
2018/11/20 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
vue+ESLint 配置保存 自动格式化代码
2020/03/17 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
Python实现FTP上传文件或文件夹实例(递归)
2017/01/16 Python
使用Turtle画正螺旋线的方法
2017/09/22 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
详解Python 函数如何重载?
2019/04/23 Python
Python使用eval函数执行动态标表达式过程详解
2020/10/17 Python
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
全球性的众包图形设计市场:DesignCrowd
2021/02/02 全球购物
大型晚会策划方案
2014/02/06 职场文书
网页美工求职信
2014/02/15 职场文书
优秀党员获奖感言
2014/02/18 职场文书
买房委托公证书
2014/04/08 职场文书
学生党员一帮一活动总结
2014/07/08 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书
python基础之爬虫入门
2021/05/10 Python
灵能百分百第三季什么时候来?
2022/03/15 日漫