博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
证件照处理
阅读量:804 次
发布时间:2019-03-26

本文共 2156 字,大约阅读时间需要 7 分钟。

标注人像轮廓

from PIL import Imageedge=[]# 请在此处编辑您的代码#*********** Begin **********#img = Image.open('./step1/white.jpg')img = img.convert('RGB')width,height = img.sizefor h in range(0,height):    s=-1;e=-1    for w in range(0,width):        pix = img.getpixel((w,h))        if sum(pix)<3*240:            s=w-1            break    if w
w: pix = img.getpixel((w1,h)) if sum(pix)<3*240: e=w1+1 break w1=w1-1 edge.append([s,e])#*********** End **********#print(edge)

第2关:圈出人像轮廓

from PIL import Imagedef circle_out(path):        img = Image.open('./step2/white.jpg')    img = img.convert('RGB')    edge=[]    width,height = img.size    for h in range(0,height):        s=-1;e=-1        for w in range(0,width):            pix = img.getpixel((w,h))            if sum(pix)<3*240:                s=w-1                break        if w
w: pix = img.getpixel((w1,h)) if sum(pix)<3*240: e=w1+1 break w1=w1-1 edge.append([s,e]) # 请在此处编辑您的代码 #*********** Begin **********# for i in range(len(edge)): if (0<=edge[i][0]

替换背景色

from PIL import Imagedef ba_color(path):    img = Image.open(path)    img = img.convert('RGB')    edge=[]    width,height = img.size    for h in range(0,height):        s=-1;e=-1        for w in range(0,width):            pix = img.getpixel((w,h))            if sum(pix)<3*240:                s=w-1                break        if w
w: pix = img.getpixel((w1,h)) if sum(pix)<3*240: e=w1+1 break w1=w1-1 edge.append([s,e]) # 请在此处编辑您的代码 #*********** Begin **********# for i in range(len(edge)): if edge[i]==[-1,-1]: for k in range(width): img.putpixel((k,i),(255,0,0)) else: for k in range(edge[i][0]+1): img.putpixel((k,i),(255,0,0)) for k in range(edge[i][1],width): img.putpixel((k,i),(255,0,0)) #*********** End **********# img.save('./step3/结果/red.jpg')

转载地址:http://yqoyk.baihongyu.com/

你可能感兴趣的文章