将多副图片拼接为一幅大图片

加入白边,分割图像

白边的增加使用了遮罩层

import numpy as np

a = np.ones((10, 10))

print(a)

mask = np.ones(a.shape[:2],dtype=np.bool)

mask[2:-2, 2:-2] = 0

print(mask)

a[mask] = 0

print(a)

[[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]]

[[ True True True True True True True True True True]

[ True True True True True True True True True True]

[ True True False False False False False False True True]

[ True True False False False False False False True True]

[ True True False False False False False False True True]

[ True True False False False False False False True True]

[ True True False False False False False False True True]

[ True True False False False False False False True True]

[ True True True True True True True True True True]

[ True True True True True True True True True True]]

[[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]

[0. 0. 1. 1. 1. 1. 1. 1. 0. 0.]

[0. 0. 1. 1. 1. 1. 1. 1. 0. 0.]

[0. 0. 1. 1. 1. 1. 1. 1. 0. 0.]

[0. 0. 1. 1. 1. 1. 1. 1. 0. 0.]

[0. 0. 1. 1. 1. 1. 1. 1. 0. 0.]

[0. 0. 1. 1. 1. 1. 1. 1. 0. 0.]

[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]

交换轴有点懵逼。。。。

import numpy as np

import cv2 as cv

import os

img_dir = 'D:/tmp/phone'

img_width_num = 6

img_height_num = 3

img_width_size = 150

img_height_size = 200

imgs = []

for name in os.listdir(img_dir)[:img_height_num * img_width_num]:

path = os.path.join(img_dir, name)

img = cv.imread(path)

img = cv.resize(img, (img_width_size, img_height_size))

# print(img.shape) # (200, 150, 3)

# 加上白边

mask = np.ones(img.shape[:2], dtype=np.bool)

mask[2:-2, 2:-2] = 0

img[mask] = 255

imgs.append(img)

img = np.concatenate(imgs, 0)

print(img.shape) # (3600, 150, 3)

img = img.reshape(img_height_num, img_width_num, img_height_size, img_width_size, 3)

print(img.shape, img[0, 0].shape) # (3, 6, 200, 150, 3) (200, 150, 3)

img = img.swapaxes(1, 2).reshape(img_height_size * img_height_num, img_width_size * img_width_num, 3)

print(img.shape) # (600, 900, 3)

cv.imshow('img', img)

cv.waitKey(0)

转载至链接:https://my.oschina.net/ahaoboy/blog/1932892

python图像拼接_python numpy 和 opencv 图像拼接相关推荐

  1. python 虚部_python – Numpy警告:将Complex复制到实际丢弃的虚部

    我在Python中尝试使用Matlab代码 我的代码发出警告 /usr/lib/python2.7/dist-packages/numpy/core/numeric.py:235:ComplexWar ...

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

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

  3. python+opencv图像拼接-python opencv 图像拼接的实现方法

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

  4. opencv图像拼接【二】

      在opencv图像拼接[一]中,实现了图像的直接连接,那么本文将实现基于特征匹配的图像融合,就是两幅图像中会有相同的部分,根据图像中相同的特征,实现图像的"拼接". 原图 特征 ...

  5. Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式

    Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...

  6. win7系统下配置openCV python环境附加 numpy +scipy安装

    我的电脑是win7 64位,openCV是2.4.9,python是2.7.8,numpy和scipy都是2.7 64位.如果你的电脑是32位,软件是其他版本也不同,也不要担心,我会详细的说明.若文中 ...

  7. Intel Realsense D435 python(Python Wrapper)example02: NumPy and OpenCV 用窗口展示并排堆叠的RGB流和深度流

    example02: NumPy and OpenCV https://github.com/IntelRealSense/librealsense/blob/development/wrappers ...

  8. vs python opencv配置_python如何配置opencv

    技术宅 在python中配置opencv库,使用pycharm环境 1.官网下载:点击打开链接,官网上有所有的openCV版本,找到你想要的版本和系统,点击之后,会弹出一个新的页面,不需要任何操作,便 ...

  9. OpenCV图像拼接之Stitching和Stitching_detailed

    Stitcher类与detail命名空间 OpenCV提供了高级别的函数封装在Stitcher类中,使用很方便,不用考虑太多的细节. 低级别函数封装在detail命名空间中,展示了opencv算法实现 ...

最新文章

  1. 读书:历史 -- 百年战争简史
  2. 利用 JQuery的load函数动态加载页面
  3. php监听订单状态,ecshop数据库订单状态判断
  4. 分布式定时任务调度系统技术选型
  5. Android USB Gadget复合设备驱动(打印机)测试方法
  6. 在云环境上使用SLF4J对Java程序进行日志记录
  7. codeforces gym-101673 Twenty Four, Again 24点,枚举表达式树过题
  8. php 命令链模式,设计模式之------命令链模式
  9. 异步api_如何设计无服务器异步API
  10. Oracle ADF开发实战指南pdf
  11. C++ map, 运用map统计单词出现的次数
  12. 【防爬虫01】通过headers中的user-agent字段来反爬
  13. java 回调函数实现_Java实现的回调函数
  14. Docker 学习笔记(四)-- Docker 可视化界面
  15. 使用 Shiro 配合微信小程序或者app登录,做验权
  16. VS2019怎么没有C++的窗体应用模板_砖混结构模板技术交底
  17. java根据jpg格式图片或视频文件生成gif动图
  18. VUE2.0全局方法注册
  19. Nature综述:人类微生物培养及培养组学culturomics
  20. 说一说Glide.with()

热门文章

  1. 企业定制CRM系统的流程
  2. happens-before 规则
  3. 中国数字发展指数报告(2021) 附下载
  4. java简易制作图书查询系统
  5. Linux命令之more(11)
  6. Scrapy 提示错误 DEBUG: Crawled (403) <GET https://book.douban.com/top250> (referer: None)
  7. 甘书计算机,甘文生,暨南大学
  8. [龙讯6号]龙芯2E首次公布设计细节
  9. Python + ESP32 制作车辆定位系统,终于可以随时随地知道爱车的位置了
  10. 5G应用发展情况,你知多少