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抓取网页图片示例(python爬虫)
Apr 27 Python
从零学Python之引用和类属性的初步理解
May 15 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
Django返回json数据用法示例
Sep 18 Python
python定时利用QQ邮件发送天气预报的实例
Nov 17 Python
django缓存配置的几种方法详解
Jul 16 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
Dec 03 Python
Python基础之变量基本用法与进阶详解
Jan 03 Python
python实现加密的方式总结
Jan 19 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
Jan 25 Python
用Python在Excel里画出蒙娜丽莎的方法示例
Apr 28 Python
python中如何打包用户自定义模块
Sep 23 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中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
php中explode函数用法分析
2014/11/15 PHP
php防止恶意刷新与刷票的方法
2014/11/21 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
2013/08/02 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
JavaScript关于提高网站性能的几点建议(一)
2016/07/24 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python中的Numeric包和Numarray包使用教程
2015/04/13 Python
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
Python大批量搜索引擎图像爬虫工具详解
2020/11/16 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
html5 canvas fillRect坐标和大小的问题解决方法
2014/03/26 HTML / CSS
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
西班牙高科技产品购物网站:MejorDeseo
2019/09/08 全球购物
幼教毕业生自我鉴定
2014/01/12 职场文书
校园创业策划书
2014/01/14 职场文书
运动会广播稿80字
2014/01/23 职场文书
《陋室铭》教学反思
2014/02/26 职场文书
公证委托书标准格式
2014/09/11 职场文书
转让协议书范本
2014/09/13 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
2014年度考核工作总结
2014/12/24 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
MySQL 存储过程的优缺点分析
2021/05/20 MySQL
python3中apply函数和lambda函数的使用详解
2022/02/28 Python