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中使用md5sum检查目录中相同文件代码分享
Feb 02 Python
Python中非常实用的一些功能和函数分享
Feb 14 Python
用python记录运行pid,并在需要时kill掉它们的实例
Jan 16 Python
一个基于flask的web应用诞生 组织结构调整(7)
Apr 11 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
May 24 Python
如何优雅地处理Django中的favicon.ico图标详解
Jul 05 Python
python使用matplotlib绘制雷达图
Oct 18 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
Jul 14 Python
Python爬虫爬取糗事百科段子实例分享
Jul 31 Python
Django实现微信小程序支付的示例代码
Sep 03 Python
Django项目如何获得SSL证书与配置HTTPS
Apr 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 HTML代码串截取代码
2008/12/29 PHP
PHP中遍历数组的三种常用方法实例分析
2019/06/24 PHP
用js生产批量批处理执行命令
2008/07/28 Javascript
javascript multibox 全选
2009/03/22 Javascript
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
JS:window.onload的使用介绍
2013/11/13 Javascript
document.forms[].submit()使用介绍
2014/02/19 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
2014/09/01 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
javascript快速排序算法详解
2014/09/17 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
JS验证全角与半角及相互转化的介绍
2017/05/18 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
Node做中转服务器转发接口
2017/10/18 Javascript
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
javascript中如何判断类型汇总
2019/05/14 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
Python 获取命令行参数内容及参数个数的实例
2019/12/20 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
2020/03/05 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
美国家居装饰店:Pier 1
2019/09/04 全球购物
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
致长跑运动员加油稿
2014/02/20 职场文书
求职信结尾怎么写
2014/05/26 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
大学三好学生主要事迹范文
2015/11/03 职场文书