本文实例为大家分享了利用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)

效果如下:

原图:

拼接后的图像:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2020-03-04

pythonopencv图像拼接缝隙_python+OpenCV实现图像拼接相关推荐

  1. pythonopencv图像形态_Python+OpenCV图像处理之其他形态学操作

    顶帽(Top Hat): 原图像与开操作之间的差值图像,突出原图像中比周围亮的区域 黑帽(Black Hat): 闭操作图像与原图像的差值图像, 突出原图像中比周围暗的区域 形态学梯度(Gradien ...

  2. pythonopencv图像形态_python+opencv图像形态学处理详细解释(膨胀、腐蚀、开闭运算、礼帽和黑猫)...

    python+opencv图像形态学处理 本篇博客主要是关于形态学中的腐蚀.膨胀.开运算.闭运算.礼帽和黑帽的函数用法. 内容会比较,为方便查阅.代码的解释会写在代码中. 用于测试的图像原图: 一.腐 ...

  3. pythonopencv检测行人_Python+OpenCV进行行人检测

    Python+OpenCV进行行人检测 应用非极大抑制方法,可排除候选的重叠检测 使用前环境及库配置 我运行的环境为Python3.6(Anaconda3)+OpenCV3,IDE:PyCharm 1 ...

  4. python图像拼接_python opencv 图像拼接的实现方法

    初级的图像拼接为将两幅图像简单的粘贴在一起,仅仅是图像几何空间的转移与合成,与图像内容无关.高级图像拼接也叫作基于特征匹配的图像拼接,拼接时消去两幅图像相同的部分,实现拼接合成全景图. 具有相同尺寸的 ...

  5. 利用OpenCV实现图像拼接的代码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 图像拼接是利用连续帧图像生成全景图或更高分辨率的 ...

  6. opencv图像拼接_使用OpenCV进行图像全景拼接

    点击上方"AI小白学视觉",选择加"星标"或"置顶"重磅干货,第一时间送达 图像拼接是计算机视觉中最成功的应用之一.如今,很难找到不包含此功 ...

  7. 使用Python和OpenCV进行图像拼接和全景图构建

    使用Python和OpenCV进行图像拼接和全景图构建 1. 效果图 2. 原理及步骤 3. 源码 3.1 拼接类源码 3.2 拼接用到的工具类 3.3 叠加多张图像源码 参考 这篇博客将介绍如何使用 ...

  8. 利用C++中的opencv进行图像拼接

    这篇文章依旧是记录采用C++复现图像拼接过程解决遇到的问题.因为自己没有学过C++,大学学的C考完试立马还给老师了,Python也是现学的,只会一点点MATLAB,所以遇到的问题和解决都很基础,目的是 ...

  9. OpenCV常用图像拼接方法(一) :直接拼接(硬拼)

    OpenCV常用图像拼接方法将分为四部分与大家分享,这里是第一种方法,欢迎关注后续. OpenCV常用图像拼接方法(一) :直接拼接,俗称硬拼,就是简单的将两张图片合并成一张大图. 方法比较简单,这里 ...

最新文章

  1. It appears as though you do not have permission to view information ...
  2. SAP PM 初级系列23 - IW22 事务代码里创建维修工单
  3. django中csrftoken跨站请求伪造的几种方式
  4. OpenCV推断onnx格式目标检测模型(SSD)(附完整代码)
  5. 解决win7下netbeans安装的错误问题
  6. 划分数据集代码(按照4:1的比例)以及根据各自文件名写入txt文件
  7. base昆明,腾讯云在合作伙伴的阵营中@了TA
  8. 国家邮政局:对刷单、贩卖快递盲盒等进行清理整顿
  9. 程序员如何应对双十一购物的大流量冲击?
  10. 洛谷 P2622 关灯问题II (状态压缩+BFS)
  11. 闲聊Framebuffer
  12. 几款基于ODE的机器人仿真软件
  13. GPS NMEA码详解
  14. 碎片化学习和系统化学习的对比
  15. Digital Booklet - Taylor Swift Karao-pdf
  16. python登录豆瓣_手把手教你用python模拟登录豆瓣
  17. nand2tetris 第二章 布尔运算
  18. win10修改服务器时间,win10设置时间服务器地址
  19. 震撼!寒冬腊月里惊现多台历途外墙清洗机器人 1
  20. cmake编译pcl程序时出现‘boost::this_thread::hiden::sleep_until(timespec const)’未定义的引用

热门文章

  1. hadoop启动页面_hadoop的web管理界面打不开
  2. GDT 表与段选择子等解析
  3. 文远知行杯广东工业大学第十六届程序设计竞赛ABEFHI(记录)
  4. notion闪退原因
  5. java select 下拉选项框option定位_java select 下拉选项框opt
  6. 七天玩转Redis | Day1、Redis认识与环境配置
  7. 20165203实验五 网络编程与安全
  8. html mailto 不起作用,html关于mailto用法详解
  9. vue3知识点:provide 与 inject
  10. 轻松查询多个极兔快递物流中含有多次派件的单号