拼接不同文件夹中同名图片的方法

news2024/12/22 19:47:44

有时候为了方便对比不同文件夹中同名图片,需要拼接在一起,这里提供一个拼接方法,当然不同命文件也可以实现拼接,稍微改改就能实现

如下图,在文件夹中有五个文件夹中的图片需要拼接,拼接后的图片存放在img_hebing

代码如下,为了隐去了一些项目私密信息

import warnings
warnings.filterwarnings('ignore')
import matplotlib.pyplot as plt
from matplotlib import cm as CM
import matplotlib.gridspec as gridspec
import os
import glob
import numpy as np
import scipy.io as scio
from scipy.io import loadmat
from PIL import Image; import cv2
import torch
from torchvision import transforms

DATA_PATH = f"D:/TEST/image_test/"

img_path1 = glob.glob(os.path.join(DATA_PATH, "four_visualization_1", "*.png"))  
img_path2 = glob.glob(os.path.join(DATA_PATH, "four_visualization_2", "*.png"))  
img_path3 = glob.glob(os.path.join(DATA_PATH, "four_visualization_3", "*.png"))  
img_path4 = glob.glob(os.path.join(DATA_PATH, "four_visualization_4", "*.png"))  
img_path5 = glob.glob(os.path.join(DATA_PATH, "four_visualization_5", "*.png")) 
save_path = f'D:/TEST/image_test/img_hebing'
img_path1.sort()
img_path2.sort()
img_path3.sort()
img_path3.sort()
img_path5.sort()
for idx in range(0, len(img_path3)):
    img_path = img_path3[idx]
    filename = img_path.split('/')[-1].split('\\')[-1].split('.')[0].split('_')[2:-1]
    filename = '_'.join(filename)  # 文件名
    # 读取图像
    img1 = cv2.imread(img_path1[idx])
    img2 = cv2.imread(img_path2[idx])    
    img3 = cv2.imread(img_path3[idx])
    img4 = cv2.imread(img_path4[idx])
    img5 = cv2.imread(img_path5[idx])
    # 获取图像高度和宽度
    height0, width0 = img1.shape[:2]
    height1, width1 = img2.shape[:2]
    height2, width2 = img3.shape[:2]
    height3, width3 = img4.shape[:2]    
    height4, width4 = img5.shape[:2]
    # 获取最宽宽度
    max_width = max(width0, width1, width2, width3, width4)
    # 计算放大倍率
    scaling_factor0 = max_width / width0
    scaling_factor1 = max_width / width1
    scaling_factor2 = max_width / width2
    scaling_factor3 = max_width / width3
    scaling_factor4 = max_width / width4

    # 调整图像大小并进行比例放大
    image0_resized = cv2.resize(img1, (max_width, int(height0 * scaling_factor0)))
    image1_resized = cv2.resize(img2, (max_width, int(height1 * scaling_factor1)))
    image2_resized = cv2.resize(img3, (max_width, int(height2 * scaling_factor2)))
    image3_resized = cv2.resize(img4, (max_width, int(height3 * scaling_factor3)))    
    image4_resized = cv2.resize(img5, (max_width, int(height4 * scaling_factor4)))
    # 拼接
    combined_iamge = np.vstack((image4_resized, image2_resized, image3_resized, image0_resized, image1_resized))
    # 安装路径保存
    cv2.imwrite(os.path.join(save_path, "{}.png".format(filename)), combined_iamge)

拼接好的图像示例如下,当然这是垂直拼接,要是水平拼接,换一下hastack函数,放大倍率换成高度对比就好了

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TSINGSEE青犀基于opencv的安全帽/反光衣/工作服AI检测算法自动识别及应用

安全帽/反光衣/工作服自动识别检测算法可以通过opencvyolo网络对现场画面中人员穿戴着装进行实时分析检测,判断人员是否穿着反光衣/安全帽。在应用场景中,安全帽/反光衣/工作服检测应用十分重要,通过对人员的规范着装进行实时监测与预警&…

diag_service的GLINK_IST是怎么来的

背景 平台:SA8155,QA 1.2.1 8155上集成了很多IP核,其中有不少的IP本质上是arm M核或者R核,这些模块在开发或者使用过程中也是需要监控和诊断的,但是他们并没有外部的调试接口,高通设计了整套诊断框架通过APSS&#x…

GBASE南大通用携手宇信科技打造“一表通”全链路解决方案

什么是“一表通”? “一表通”是国家金融监督管理总局为发挥统计监督效能、完善银行保险监管统计制度、推进监管数据标准化建设、打破数据壁垒,而制定的新型监管数据统计规范。相较于以往的报送接口,“一表通”提高了对报送时效性、校验准确性…

【Linux服务器Java环境搭建】09 在CentOS系统中安装和配置clickhouse数据库

一、安装环境 CentOS7 二、官网安装参考文档 官网安装参考文档 不同系统请参考如下建议 从RPM软件包安装: 建议在CentOS、RedHat和所有其他基于rpm的Linux发行版上使用官方预编译的rpm软件包从DEB软件包安装: 建议在Debian或Ubuntu上使用官方预编译…

深圳移动与大富科技助力深圳人工智能教育高质量发展

12月12日,中国移动通信集团广东有限公司深圳分公司(以下简称“深圳移动”) 与大富科技(安徽)股份有限公司(以下简称“大富科技”)在中国移动深圳信息大厦签署“战略合作框架协议”,共同推进人工智能教育、I…

物联网与低代码:构建智能化的连接世界

物联网(IoT)是指通过互联网将各种物理设备、传感器、车辆等连接起来,从而实现数据交互和智能化控制的技术领域。而低代码开发平台则是一种快速构建应用程序的方法,通过简化开发过程,使开发人员能够更迅速地实现创意和创…

数据结构学习 快速幂

看了这一篇很好的文章:快速幂,学习了一下快速幂。如果你看到这篇文章想要学习快速幂,我建议你直接去看这篇文章吧,下面的都是我个人的笔记和碎碎念。 重拾我的考研线性代数,非常有趣呢! 基本的快速幂&…

Flutter之Android Studio No connected devices found

看图1. 是有显示有Redmi虚拟机的。 看图2. 没有Redmi虚拟机可选择,继续往下看解决方案。 看图3.点开项目结构设置SDK确定。 看图4.它来了

基于JavaWeb+SSM+Vue实习记录微信小程序系统的设计和实现

基于JavaWebSSMVue实习记录微信小程序系统的设计和实现 源码获取入口Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 Lun文目录 目 录 摘 要 III Abstract 1 1 系统概述 1 1.1 概述 2 1.2课题意义 3 1.3 主要内…

thinkphp 中 关联查询 like 查询失效

controller: public function goodsList(){if (request()->isGet()) {//表单验证//调用发布$where [];$goodname $this->request->param(goodname, );if(!empty($goodname)){$where[] [name,like,$goodname];}return $this->logic->goodsList($where, $this-…

【EXCEL】vlookup,index/match查找函数

区别: 1.Vlookup函数只能查找列数据,即纵向查找,而IndexMatch函数,既可以纵向查找,也可以横向查找; 2、Vlookup函数查找的依据(第一个参数)必须位于数据源的第一列,IndexMatch函数组合则无此限制…

​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)

​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细) 这篇文章深入研究了在Linux Ubuntu环境下使用Docker构建Spark运行环境的详细步骤。首先,文章介绍了Spark的基本概念以及在大数据处理中的关键作用,为读者提供了对Spa…

设计模式——观察者模式(Observer Pattern)

概述 观察者模式是使用频率最高的设计模式之一,它用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。在观察者模式中,发生改变的对象称为观察目标,而被通知的对象称…

广西岑溪市火灾通报:1人死亡 AI科技助力预防悲剧

近日,广西岑溪市玉梧大道紫坭工业园一厂房发生一起令人心痛的火灾事件,造成1人不幸丧生。这起悲剧再次提醒我们,火灾的防范工作是多么的重要。在这样的背景下,我想分享一个能够有效预防类似悲剧的技术——北京富维图像公司开发的F…

鸿蒙原生应用/元服务开发-Stage模型能力接口(三)

一、说明 AbilityLifecycleCallback模块提供应用上下文ApplicationContext的生命周期发生变化时触发相应回调的能力,包括onAbilityCreate、onWindowStageCreate、onWindowStageActive、onWindowStageInactive、onWindowStageDestroy、onAbilityDestroy、onAbilityFo…

力扣题:数字与字符串间转换-12.14

力扣题-12.14 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:442. 数组中重复的数据 解题思想:从字符串中能够正确提取数字即可 class Solution(object):def complexNumberMultiply(self, num1, num2):""":type num1:…

acwing-蓝桥杯C++ AB组辅导课Day1-递归

感谢梦翔老哥的蓝桥杯C AB组辅导课~ 省一刷200题 国赛拿成绩300题 比赛考察的是各种模型的熟练度,可以从dfs的角度比较各个模型与当前问题的匹配程度。 常见时间复杂度,根据时间复杂度可以判别是否可以选用这个解题思路 写递归的时候&#xff…

visual Studio MFC 平台实现图片的傅里叶变换

图片的傅里叶变换 本文主要讲解傅里叶变换的基本数学概念与物理概念,并本文使用visual Studio MFC 平台实现对傅里叶变换在图片上进行了应用。 一、傅里叶变换的原理 在这里推荐一篇讲得非常形象的文章通俗讲解:图像傅里叶变换 1.1 傅里叶变换原理的说明…

kernel(三):kernel移植

本文主要探讨210官方kernel移植。 配置文件选择 选择配置文件smdkv210_android_defconfig(arch/arm/configs) 修改主Makefile 配置cpu架构和交叉编译工具链 vim MakefileARCH ? armCROSS_COMPILE ? /root/arm-2009q3/bin/arm-none-linux-gnueabi- 初步编译烧…

HarmonyOS应用程序框架

应用程序入口—UIAbility的使用 UIAbility概述 UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互。UIAbility也是系统调度的单元,为应用提供窗口在其中绘制界面。 每一个UIAbility实例,都对应于一个最近任务列表中的任务。 …