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代码解决RenderView窗口not found问题
Aug 28 Python
Python 实现 贪吃蛇大作战 代码分享
Sep 07 Python
详解Python 装饰器执行顺序迷思
Aug 08 Python
Win10下python 2.7.13 安装配置方法图文教程
Sep 18 Python
django将数组传递给前台模板的方法
Aug 06 Python
python创建学生管理系统
Nov 22 Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 Python
Python获取、格式化当前时间日期的方法
Feb 10 Python
python实现在线翻译
Jun 18 Python
python破解同事的压缩包密码
Oct 14 Python
Python中的变量与常量
Nov 11 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中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
thinkphp框架使用JWTtoken的方法详解
2019/10/10 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
Javascript里使用Dom操作Xml
2007/01/22 Javascript
jquery中交替点击事件toggle方法的使用示例
2013/12/08 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
javascript 实现动态侧边栏实例详解
2016/11/11 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
Python fileinput模块使用介绍
2014/11/30 Python
Python多线程编程简单介绍
2015/04/13 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
TensorFlow saver指定变量的存取
2018/03/10 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
python hough变换检测直线的实现方法
2019/07/12 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
巴西Mr. Cat在线商店:购买包包和鞋子
2019/09/08 全球购物
linux面试题参考答案(8)
2015/08/11 面试题
营销主管自我评价怎么写
2013/09/19 职场文书
合作意向书格式及范文
2014/03/31 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
学校节能减排倡议书
2014/05/16 职场文书
村班子对照检查材料
2014/08/18 职场文书
摘录式读书笔记
2015/07/01 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
记一次Mysql不走日期字段索引的原因小结
2021/10/24 MySQL