Python如何重叠图片?

Python012

Python如何重叠图片?,第1张

图片叠加再一起成这种形式(batch,28,28,1)

可以使用numpy库的concatenate函数实现

import numpy as np

a = np.array([[0,1]])

print(a.shape)

b = np.array([[0,1]])

print(b.shape)

print (np.concatenate((a,b),axis = 0).shape)

输出如下:

生成一张纯色的图片

先设置图片的颜色,接着利用Image模块的new方法新生成一张图片,png格式的图片需要设置成rgba,类似的还有rgb,L(灰度图等),尺寸设定为640,480,这个可以根据自己的情况设定,颜色同样如此。

批量生成图片

上面生成了一张图片,那要生成十张图片呢,这种步骤一样,只是颜色改变的,利用循环就可以解决。首先创建一个颜色列表,把要生成的图片颜色放进去。接着循环获取不同的颜色,保存的时候利用字符串拼接的方法改变图片的名字。

本地生成的图片

封装成函数

前面的方法已经可以批量生成图片了,为了通用性强一点,我们可以封装成函数,把哪些可以改变的参数单独抽离出来。尺寸也同样,使用的时候,可以根据自己的需要定义颜色列表和尺寸。当然还有加一些提示用语和报错兼容性,这里就不讲了。

本地生成的图片

把不足部分填充一下。

程序拿到图片的时候,先获取一下尺寸信息,然后计算出来同比例缩放的尺寸,再把它不足部分填充起来,或者和一个纯色背景或者透明背景的规定尺寸图进行叠加。

它需要图片都是无背景图片,因为有背景的图片,你放什么颜色作为不足尺寸的描边都可能不合适。然后无背景图片根本就不需要做这个事情,直接放到批处理工具里面弄一下就行了。