您的位置:首页 > 编程语言 > Python开发

python 图像预处理--统一修改图片大小并使图片反色

2018-03-13 17:27 816 查看

python 统一修改图片大小并使图片反色

目录

python 统一修改图片大小并使图片反色

目录

知识点

混合MNIST数据集图片和自己的数据集图片,纯数字。

因为收集到的图片格式不一致,为了统一训练集和测试集的格式,写了如下程序:

#coding:utf-8
import os
from PIL import Image
import numpy as np

def resize(dir,savePath,num,openUrl):
files = os.listdir(dir)
files.sort()
print('****************')
print('input :',dir)
print('start...')
for file in files:
fileType = os.path.splitext(file)
if fileType[1] == '.png':
new_png = Image.open(openUrl+str(int(num))+'/'+file) #打开图片
new_png = new_png.resize((20, 20),Image.ANTIALIAS) #改变图片大小
# matrix = 255-np.asarray(new_png) #图像转矩阵 并反色
# new_png = Image.fromarray(matrix) #矩阵转图像
new_png.save(savePath+'/'+str(int(num))+'/'+file) #保存图片
print('down!')
print('****************')

if __name__ == '__main__':
# 待处理图片地址
dataPath = 'D:\\BankCardOCR\\dataset\digit_dataSet\\training_images\\'
#打开图片时使用的地址
openUrl = 'D:/BankCardOCR/dataset/digit_dataSet/training_images/'
#保存图片的地址
savePath = 'D:/BankCardOCR/dataset/digit_dataSet/training_images'
for num in range(10):
print(str(int(num)))
resize(dataPath+str(int(num)),savePath,num,openUrl)


知识点

1:
PIL Image包读取图像时,并不是矩阵。因此需要将图像转矩阵,
matrix = numpy.asarray(matrix )
转成矩阵之后,就可以对matrix进行矩阵操作。
反之,矩阵转图像操作为:
img = Image.fromarray(matrix)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息