使用Python批量拼接图片

article/2025/3/28 6:15:57

前言

当需要将多张图像拼接成一张更大的图像时,通常会用到图片拼接技术。这种技术在许多领域中都有广泛的应用,例如计算机视觉、图像处理、卫星图像、地理信息系统等等。在实际应用中,拼接图像可以用于创建全景图像、地图、海报、广告牌等等。

本文将使用以下四张图片为例,介绍使用Python中的PIL库进行图片拼接的方法。我们将使用PIL库中的Image模块来加载、调整大小和合并多张图像。

目录

前言

〇、准备工作,PIL库安装

一、简单程序实现

二、更复杂情况



〇、准备工作,PIL库安装

PIL(Python Imaging Library)是Python中一个强大的图像处理库,它可以实现图像的打开、保存、调整大小、裁剪、合并等多种操作。PIL库还提供了丰富的图像处理功能,例如色彩调整、滤镜效果、文字叠加等等,使得图像处理变得更加简单和高效。

安装PIL库的方法如下:

  1. 使用pip安装

在命令行中输入以下命令即可:

pip install pillow

 此外,还可以通过Anaconda或Miniconda等科学计算发行版进行安装。如果你使用Anaconda,可以使用以下命令来安装Pillow库:

conda install pillow

一、简单程序实现

import os
import glob
from PIL import Image# 设置图像文件夹的路径
image_dir = 'images/'# 获取文件夹中所有图像文件的列表
image_files = glob.glob(os.path.join(image_dir, '*.png'))# 加载每个图像,并调整为200x200像素大小(如果需要)
images = []
for image_file in image_files:image = Image.open(image_file)image = image.resize((200, 200))images.append(image)# 创建一个新的400x400像素大小的白色背景图像
new_image = Image.new('RGB', (400, 400), 'white')# 将四个图像粘贴到新图像的正确位置
new_image.paste(images[0], (0, 0))
new_image.paste(images[1], (200, 0))
new_image.paste(images[2], (0, 200))
new_image.paste(images[3], (200, 200))# 将最终图像保存到磁盘上
new_image.save(image_dir + 'output.png')

效果如下

二、更复杂情况

如果遇到更多图片的情况应该怎么办呢,我稍微更改了一下程序结构,让大家可以拼接任意数量的图形块。

11/04/2023 version,  debuged this part.

30/04/2023 version,  debuged this part again.

import os
import math
from PIL import Imagedef merge_images(image_folder, output_file, n, m):# 获取所有图像文件的列表image_files = [os.path.join(image_folder, f) for f in os.listdir(image_folder) if f.endswith('.png')]# 计算每个小图像的大小和大图像的大小image_count = len(image_files)if image_count == 0:print('No image files found in the directory:', image_folder)return# 计算小图像的大小以及大图像的大小img = Image.open(image_files[0])img_size0 = img.size[0]img_size1 = img.size[1]new_img_size0 = img_size0 * nnew_img_size1 = img_size1 * m# 创建一个新的大图像new_img = Image.new('RGB', (new_img_size0, new_img_size1), 'white')# 将所有小图像粘贴到新图像的正确位置for i, f in enumerate(image_files):row = int(i / n)col = i % nimg = Image.open(f)img = img.resize((img_size0, img_size1))new_img.paste(img, (col * img_size0, row * img_size1))# 保存大图像new_img.save(output_file)# 用法示例
image_folder = 'C:/Users/someone/Desktop/img_denosing_test/paper_pics/set68/result'
output_file = 'C:/Users/someone/Desktop/img_denosing_test/paper_pics/set68/result/output.png'
n = 3  # 每行显示的图像数
m = 2  # 每列显示的图像数
merge_images(image_folder, output_file, n, m)

在本文中,我们演示了如何使用Python中的PIL库进行图片拼接,让您可以轻松地处理各种图像拼接任务。


http://chatgpt.dhexx.cn/article/Q9vV2tFV.shtml

相关文章

【Python】推荐五个常用的图像处理库

1. 引言 Python目前是世界上使用最多的编程语言之一。它能够以更少的工作量和更少的代码行数来完成许多事情。它还可以使用很少的代码行来方便地编辑和创建图像。 本文重点介绍,在图像处理领域,我们最常使用的一些Python开源库。 闲话少说,我…

python显示图片_python Image 模块处理图片

原标题:python Image 模块处理图片 Python-Image 基本的图像处理操作,有需要的朋友可以参考下。 Python 里面最常用的图像操作库是 Image library(PIL),功能上,虽然还不能跟Matlab比较,但是还是比较强大的,废话补多少,写点记录笔记。 1. 首先需要导入需要的图像库:…

python 之图像处理

1.对图像的处理 首先,对图像的处理需要提前安装第三方的PIL,可利用其对图像进行缩放、裁剪、旋转、色彩转换等一些处理工作。 举例一:设置一些图像的不同模式,open().convert(). convert中,可设置出“1”、“L”、“…

python 图片处理(pillow和OCR文字识别)

之前用过 c做opencv项目 这次用它做一下python opencv,图片截取固定像素: 仅仅记录一些步骤,知识点和踩坑。 环境: 安装要用: pip install opencv-python (后面使用pillow解决了,不学这个了)&…

python图片处理,自动生成gif动态图片

【粉丝福利】关注公众号,获取全套视频资料,使用第三方库pillow、将现有的图片,通过python自动合成gif动图,喜欢小编点个 ‘关注’ 吧! 安装依赖库 pip install Pillow导入依赖包 导入依赖包# 系统操作库import os# 图…

Python 图片处理(1) 如何增加亮度、如何添加颜色滤镜 、如何模糊图片(Pillow PIL)

文章目录 载入图片载入各种包载入图片 压缩图片滤镜增加明亮度RGB是什么增加明亮度 添加一个红色滤镜紫色滤镜 PIL模糊滤镜 载入图片 载入各种包 # import packages from PIL import Image from PIL import ImageFilter import numpy as np import numpy as np import pandas…

python图片处理(PIL)

1. 简单地读入图片、显示图片 from PIL import Image import matplotlib.pyplot as plt imgImage.open(background.jpg) plt.imshow(img) plt.show() 2. 对图像中像素点的预处理 1)获取图像尺寸 width,height 2)data是一个1D的list,长度是w…

超全Python图像处理讲解(多图预警)

文章目录 Pillow模块讲解一、Image模块1.1 、打开图片和显示图片1.2、创建一个简单的图像1.3、图像混合(1)透明度混合(2)遮罩混合 1.4、图像缩放(1)按像素缩放(2)按尺寸缩放 1.5、图…

查询oracle版本

select * from v$version; -- 查询oracle版本 select * from nls_database_parameters;

201921 oracle查看当前oracle版本及补丁版本

好久不写博客。。。 其实所有的写作,都是为了给自己备个档,给自己一次记忆,顺便,帮助了别人而已~ 所以,要多写~ 其实还有一个感悟,所有的知识来自于书本,这样才能成体系。 所有零散的技巧和知识…

查看oracle版本及补丁,Oracle 版本查看及版本号说明

select * from v$version; 结果如下: BANNER 1 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod 2 PL/SQL Release 10.2.0.1.0 - Production 3 CORE 10.2.0.1.0 Production 4 TNS for 32-bit Windows: Version 10.2.0.1.0 - Production 5 NLSRTL Version 1…

查询oracle 数据库版本

方式1:我也是在网上查询的,哈哈.自己做个总结

数学建模预测模型学习(一)——灰色预测模型

目录: 一、适用条件: 二、概念: 1、灰色系统: 2、灰色生成: 3、常见的灰生成方式: 三、GM(1,1)模型: 1、级比分析 2、GM(1,1) 四、总结 一、适用条件: &#x…

一文教你灰色预测模型到底怎么做

一、研究场景 灰色预测模型可针对数量非常少(比如仅4个),数据完整性和可靠性较低的数据序列进行有效预测,其利用微分方程来充分挖掘数据的本质,建模所需信息少,精度较高,运算简便,易…

预测模型(数学建模)

灰色系统 灰色预测是对既含有已知信息又含有不确定信息的系统进行预测,就是对在一定范围内变化的、与时间有关的灰色过程进行预测。灰色预测对原始数据进行生成处理来寻找系统变动的规律,并生成有较强规律性的数据序列,然后建立相应的微分方程…

【预测模型--常用度量指标】

一、MAE(Mean Absolute Error) 平均绝对误差MAE(MeanAbsolute Error),即误差绝对值的平均值,可以准确反映实际预测误差的大小。 MAE评估的是真实值和预测值的偏离程度,即预测误差的实际大小。 M…

matlab符号矩阵入门

由符号对象构成的矩阵为符号矩阵; 可利用sym()函数直接创建; 矩阵各元素可以为符号常量、符号变量或者符号表达式,各元素长度不要求一样; 示例如下;

matlab function 矩阵,急:Simulink MATLAB function 如何实现矩阵输出

MATLAB Function是一个模copy块,但是如果你bai输入的是一个向量,同du样也会输zhi出一个向量的。这个dao同m文件里面编程是一样的。MATLAB Function里面只能填写一个函数名称,无法编写m文件。如果你需要编写m文件的话,可以使用Embedded MATLAB…

MATLAB小知识(三)——输出矩阵到TXT

方法一:dlmwrite(验证可用) 版权声明:本文为CSDN博主「大芳同学」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/hengyaha/artic…

MATLAB基本操作与矩阵输入

文章目录 MATLAB简介一、MATLAB界面介绍二、基础知识1. 基本符号(Basic Symbol)2. 数据输出格式(Numeric Display "Format")3. 矩阵输入(Vector and Matrix)4. 实用小技巧(用于Command Window) 文…