python图像处理pillow工具作业:合并拼接图片

pillow简介

Python Imaging Library给Python解释器增加了图像处理能力。

该库提供了广泛的文件格式支持,高效的内部展现,以及十分强大的图像处理能力。

核心图像库专为以几种存储为基本像素格式数据的快速访问而设计。它为通用图像处理工具提供了坚实的基础。

我们来看看这个库的用途。

  • 图像存储

PIL适合图像归档和图像批量处理,你可以使用它建立缩略图,转换格式,打印图片等。

现在的版本可以识别和读取大量的图片格式,写入常用的转换和表示格式。

  • 图像显示

当前版本包含了Tk PhotoImageBitmapImage接口, 以及Windows DIB interface ,可以在PythonWin和其他基于Windows的工具包中使用。许多其他GUI工具包带有某种类型的PIL支持。

为了方便调试还提供了show()方法,可以保存图像到磁盘并调用外显示。它将图像保存到磁盘,并调用外部显示工具。

  • 图像处理

这个库包含了基本的图像处理功能,包括点操作,使用内置卷积内核过滤,色彩空间转换。

这个库还支持更改图像大小、旋转、任意仿射变换。

直方图方法允许你统计图像,这可以用于对比度增强和全局统计分析。

更多内容参见:python库介绍-图像处理工具pillow中文文档-手册(2018 5.*)

python图像处理pillow工具作业:合并拼接图片

图片实例:

图片.png

现在有多个分辨率和大小相同的图片,要求能拼接2,3...张图片,每行2张。展示效果如下:

2张:

图片.png

3张

图片.png

11张

图片.png

以此类推..

参考资料

代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 技术支持:https://www.jianshu.com/u/69f40328d4f0 
# 技术支持 https://china-testing.github.io/
# https://github.com/china-testing/python-api-tesing/blob/master/practices/pil_merge.py
# 项目实战讨论QQ群630011153 144081101
# CreateDate: 2018-11-22

import math
from PIL import Image

column = 2
width = 802
height = 286
size = (802, 286)

list_im = [r'd:\code.jpg', r'd:\code.jpg', r'd:\code.jpg', r'd:\code.jpg', 
           r'd:\code.jpg', r'd:\code.jpg', r'd:\code.jpg', r'd:\code.jpg',
           r'd:\code.jpg', r'd:\code.jpg', r'd:\code.jpg']
list_im = list_im*11
imgs = [Image.open(i) for i in list_im]

row_num = math.ceil(len(imgs)/column)
target = Image.new('RGB', (width*column, height*row_num))
for i in range(len(list_im)):
    if i % column == 0:
        end = len(list_im) if i + column > len(list_im) else i + column 
        for col, image in enumerate(imgs[i:i+column]):
            target.paste(image, (width*col, height*(i//column), 
                                 width*(col + 1), height*(i//column + 1)))   
target.show()
target.save('d:\code2.jpg')

参考资料

links