时隔很久才知道原来这种对图像的处理方式叫做二值化!什么是二值化呢?就是把一张图的像素点编程0或255,完全的白或黑。
比如这么一张32*32的小图片(当然他已经是黑白的了)
二值化处理之后,每个像素点上就只有两个值,要么是True要么是False。
将其转化为0,1之后,就变成下面这样
这样处理数据会很方便。
需要导入的库是PIL
源码
from PIL import Image
import numpy as np
img = Image.open('2.png')
img = img.convert('1') # 图像二值化
arr = np.array(img)
for i in range(32):
for j in range(32):
if arr[i, j] == True:
print('0', end='')
else:
print('1', end='')
print()
改变图片像素
如将一张320320的数字图片,变成我们需要处理的3232规格的图片。
原图
转化后图
代码
from PIL import Image
def produceImage(file_in, width, height, file_out):
image = Image.open(file_in)
resized_image = image.resize((width, height), Image.ANTIALIAS)
resized_image.save(file_out)
file_in = '6.1.png'
width = 32
height = 32
file_out = '6.1.out.png'
produceImage(file_in, width, height, file_out)
参考:https://blog.csdn.net/xiaosa_kun/article/details/84868348