所以我做了一个脚本,把图像转换成灰度。在
我知道很多模块都可以像.convert('grey')那样自动完成这项工作,但我想自己手动完成,以了解更多关于python编程的知识。在
它的工作正常,但它非常慢,对于一个200pX200p的图像,它需要10秒,所以,我可以修改什么使它更快?在
它是这样工作的,它取一个像素,计算R,G和B值的平均值,将三个值设置为平均值,将每个值加上40以增加亮度并写入像素。
代码如下:import imageio
import os
from PIL import Image, ImageDraw
from random import randrange
img = '/storage/emulated/0/DCIM/Camera/IMG_20190714_105429.jpg'
f = open('network.csv', 'a+')
pic = imageio.imread(img)
picture = Image.open(img)
draw = ImageDraw.Draw(picture)
f.write('\n')
def por():
cien = pic.shape[0] * pic.shape[1]
prog = pic.shape[1] * (h - 1) + w
porc = prog * 100 / cien
porc = round(porc)
porc = str(porc)
print(porc + '%')
rh = int(pic.shape[0])
wh = int(pic.shape[1])
for h in range(rh):
for w in range(wh):
prom = int(pic[h , w][0]) + int(pic[h, w][1]) + int(pic[h, w][2])
prom = prom / 3
prom = round(prom)
prom = int(prom)
prom = prom + 40
por()
draw.point( (w,h), (prom,prom,prom))
picture.save('/storage/emulated/0/DCIM/Camera/Modificada.jpg')