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 相关文章推荐
一个检测OpenSSL心脏出血漏洞的Python脚本分享
Apr 10 Python
在python中的socket模块使用代理实例
May 29 Python
简述Python中的面向对象编程的概念
Apr 27 Python
教你用Python写安卓游戏外挂
Jan 11 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
Apr 10 Python
简单了解python PEP的一些知识
Jul 13 Python
Python Process多进程实现过程
Oct 22 Python
解决Pytorch训练过程中loss不下降的问题
Jan 02 Python
django xadmin 管理器常用显示设置方式
Mar 11 Python
python requests.get带header
May 05 Python
Python日志器使用方法及原理解析
Sep 27 Python
python绘图pyecharts+pandas的使用详解
Dec 13 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 GD 图像处理组件的常用函数总结
2010/04/28 PHP
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
仿迅雷焦点广告效果(JQuery版)
2008/11/19 Javascript
学习ExtJS table布局
2009/10/08 Javascript
jQuery 白痴级入门教程
2009/11/11 Javascript
javascript中判断一个值是否在数组中并没有直接使用
2012/12/17 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
微信小程序 获取设备信息 API实例详解
2016/10/02 Javascript
jQuery快速高效制作网页交互特效
2017/02/24 Javascript
详解JS中遍历语法的比较
2017/04/07 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
Vue filters过滤器的使用方法
2017/07/14 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
Vue实现跑马灯效果
2020/05/25 Javascript
在vue中使用Echarts画曲线图的示例
2020/10/03 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
详解python上传文件和字符到PHP服务器
2017/11/24 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
Python 寻找局部最高点的实现
2019/12/05 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
CSS3动画:5种预载动画效果实例
2017/04/05 HTML / CSS
英国领先的NHS批准的在线药店:Pharmacy2U
2017/01/06 全球购物
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
英语系本科生求职信范文
2013/12/18 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
采购员工作总结范文
2015/08/12 职场文书
Python各协议下socket黏包问题原理
2022/04/12 Python