使用numpy处理图片——图片拼接

大纲

  • 左右拼接
  • 上下拼接

在《使用numpy处理图片——图片切割》一文中,我们介绍了如何使用numpy将一张图片切割成4部分。本文我们将反其道而行之,将4张图片拼接成1张图片。
基本的思路就是先用两张图以左右结构拼接成上部,另外两张图也以左右拼接成为下部。然后上下两部再拼接。当然也可以先上下拼接成左部和右部,然后再左右拼接。
在这里插入图片描述

左右拼接

左右拼接也就是第二维度拼接。使用的是hstack方法,给它传递的是需要拼接的数组所组成的元组。这样我们就拼接出上下两部。
在这里插入图片描述

import numpy as np
from PIL import Image

correlateImg = Image.open('correlate.png')
correlateData = np.array(correlateImg)

gaussianLaplaceImg = Image.open('gaussianlaplace.png')
gaussianLaplaceData = np.array(gaussianLaplaceImg)

morphoLogicalLaplaceImg = Image.open('morphologicallaplace.png')
morphoLogicalLaplaceData = np.array(morphoLogicalLaplaceImg)

whiteTophatImg = Image.open('whitetophat.png')
whiteTophatData = np.array(whiteTophatImg)

top = np.hstack((correlateData, gaussianLaplaceData))
bottom = np.hstack((morphoLogicalLaplaceData, whiteTophatData))

上下拼接

在这里插入图片描述
上下拼接使用的是vstack方法。给它传递的是上下两部数组组成的元组。

full = np.vstack((top, bottom))

fullImg = Image.fromarray(full)
fullImg.save('full.png')

我们以《使用numpy处理图片——模糊处理》中生成的图片为例,用4个模糊处理的图片拼接出1张图片。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/312799.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实现用户注册功能

实现用户注册功能 注:打赏即可获得一对一线下辅导,机不可失,时不再来

软件系统培训方案(Word)

1. 培训概述 2. 培训目的 3. 培训对象及要求 3.1. 培训对象 3.2. 培训人员基本要求 4. 培训方式 5. 培训内容 6. 培训讲师 7. 培训教材 8. 培训质量保证 8.1. 用户培训确认报告 8.2. 培训疑问解答 软件开发全文档下载:软件项目开发全套文档下载_软件项目文档-CSDN博…

MySQL——SQL语句进阶

select * from 表 where 条件 group by 条件 order by 排序 limit 分组 Group by select * from 表 group by 条件 结果为每个分组的第一条记录,该条记录作为该组的标志 select * from subject GROUP BY gradeidselect count(1),gradeid from subject GROUP B…

vue3+ts+vite项目从0 搭建,配置安装router/pinia/element-plus/scss等

一、安装vite环境 官网:https://cn.vitejs.dev/guide/why.html npm init vite1.选择vue 2.选择typescipt 3.创建成功 默认项目结构如下 4.安装项目依赖 npm install 5.启动项目 npm run dev二。安装配置scss 1.运行安装scss npm install -D sass sass-loa…

[UI5] ODATA V4中的CRUD

文章目录 前言一、Read二、Create三、Update四、Delete 前言 ODATA V4在CRUD方面与V2截然不同。 这篇文章简单介绍V4中是如何进行CRUD操作 一、Read Model不再有read方法, 一般是把Path绑定到View中进行读取, 如果需要额外的读取数据,可使用…

Vant-ui图片懒加载

核心代码 在你的全局顶部引入和初始化 Vue.use(vant.Lazyload, {loading: /StaticFile/img/jiazai.jpg,error: /StaticFile/img/jiazai.jpg,lazyComponent: false, });//图片懒加载 <img v-lazy"https://img-blog.csdnimg.cn/direct/3d2c8a7e2c0040488a8128c3e381d58…

ubuntu20.04 deepstream 6.3安装

1.基础环境gstreamer sudo apt install \ libssl-dev \ libgstreamer1.0-0 \ gstreamer1.0-tools \ gstreamer1.0-plugins-good \ gstreamer1.0-plugins-bad \ gstreamer1.0-plugins-ugly \ gstreamer1.0-libav \ libgstreamer-plugins-base1.0-dev \ libgstrtspserver-1.0-0 …

基于JavaWeb+BS架构+SpringBoot+Vue+Hadoop短视频流量数据分析与可视化系统的设计和实现

基于JavaWebBS架构SpringBootVueHadoop短视频流量数据分析与可视化系统的设计和实现 文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 文末获取源码 Lun文目录 目  录 目  录 I 1绪 论 1 1.1开发背景 1 1.2开…

IDEA创建springboot+mybatis项目(java8 和java21可行)

IDEA创建springbootmybatis项目&#xff08;java8 和java21可行&#xff09; 今天博主讲一下&#xff0c;IDEA创建springbootmybatis项目的文章。 步骤分别是如下几步&#xff1a; 1. 创建maven项目 2. 配置pom.xml文件 3. 创建目录结构 4. 创建配置项目文件 5. 生成创建…

【pytorch】使用pytorch构建线性回归模型-了解计算图和自动梯度

使用pytorch构建线性回归模型 线性方程的一般形式 衡量线性损失的一般形式-均方误差 pytorch中计算图的作用和优势 在 PyTorch 中&#xff0c;计算图&#xff08;Computational Graph&#xff09;是一种用于表示神经网络运算的数据结构。每个节点代表一个操作&#xff0c;例如…

报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver

记一次关于驱动报错的问题 背景 原始驱动版本515&#xff0c;cuda 11.5.。 要将cuda 版本升级到11.7 内容 我去nvidia官网下载了 11.7.1的cuda tools nvidia CUDA 下载。 按照步骤安装后&#xff0c;执行nvcc -V ,可以看到已经正常更新 但是执行 nvidia-smi 时报错 NVIDIA…

67.网游逆向分析与插件开发-角色数据的获取-分析角色数据基址

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;角色类的数据分析与C还原-CSDN博客 基址这个东西说好找也好找&#xff0c;说不好找是真找不着&#xff0c;但就根据一个原则&#xff0c;就是确认这个东西有基址还是没基址&#xff0c;为什么会有没基…

专搞大厂?免费开源?这个小工具我相信很多人需要!

软件简介&#xff1a; 软件【下载地址】获取方式见文末。注&#xff1a;推荐使用&#xff0c;更贴合此安装方法&#xff01; XHS-Downloader v1.6是一款功能齐全的免费开源工具&#xff0c;它使用Python Requests库开发而成&#xff0c;用于采集和下载X红S作品。该工具具备多…

thinkphp美容SPA管理系统源码带文字安装教程

thinkphp美容SPA管理系统源码带文字安装教程 运行环境 服务器宝塔面板 PHP 7.0 Mysql 5.5及以上版本 Linux Centos7以上 基于thinkphp3.23B-JUI1.2开发&#xff0c;权限运用了Auth类认证&#xff0c;权限可以细分到每个功能&#xff0c; 增删改查功能一应俱全&#xff0c;整合了…

数据结构与算法教程,数据结构C语言版教程!(第三部分、栈(Stack)和队列(Queue)详解)四

第三部分、栈(Stack)和队列(Queue)详解 栈和队列&#xff0c;严格意义上来说&#xff0c;也属于线性表&#xff0c;因为它们也都用于存储逻辑关系为 "一对一" 的数据&#xff0c;但由于它们比较特殊&#xff0c;因此将其单独作为一章&#xff0c;做重点讲解。 使用栈…

突然又对 Go 感兴趣,GOPATH entry cannot start with shell metacharacter 错误

打发无聊时间&#xff0c;水文一篇&#xff5e; 事情是这样的&#xff0c;因为我们上架的渠道包基本是定制化混淆出包&#xff0c; 混淆出包有一个关键点就是指定映射文件&#xff0c;映射文件的内容有一部分是使用外部工具在打包前按照一定规律随机生成包名、类名&#xff0c…

Webhook端口中的自定义签名身份认证

概述 如果需要通过 Webhook 端口从交易伙伴处接收数据&#xff0c;但该交易伙伴可能对于安全性有着较高的要求&#xff0c;而不仅仅是用于验证入站 Webhook 要求的基本身份验证用户名/密码&#xff0c;或者用户可能只想在入站 Webhook 消息上增加额外的安全层。 使用 Webhook…

occNeRF:使用神经辐射场进行多摄像头自监督占据预测

文章&#xff1a;OccNeRF: Self-Supervised Multi-Camera Occupancy Prediction with Neural Radiance Fields 作者&#xff1a;Chubin Zhang, Juncheng Yan , Yi Wei ,Jiaxin Li, Li Liu, Yansong Tang , Yueqi Duan, Jiwen Lu 编辑&#xff1a;点云PCL 欢迎各位加入知识星…

并发前置知识二:多线程不安全的本质

一、前言 这些年&#xff0c;我们的cpu、内存和i/o设备都在不断迭代&#xff0c;不断朝着更快的方向努力。但是&#xff0c;在这个快速发展的过程中&#xff0c;有一个核心矛盾一直存在&#xff0c;就是这三者的速度。 cpu是天上1天&#xff0c;内存是地上1年cpu是天上1天&am…

配电柜监测:别再人工巡检!一文讲透!

随着现代社会对电力的依赖性不断增强&#xff0c;各行各业对电力系统的可靠性和安全性提出了更高的要求。 配电柜作为电力系统的核心组成部分&#xff0c;其监控与管理显得尤为重要。为了满足企业对电力系统监测的需求&#xff0c;配电柜监控系统应运而生。 客户案例 制造企业…