标注人像轮廓
from PIL import Image
edge=[]
# 请在此处编辑您的代码
#*********** Begin **********#
img = Image.open('./step1/white.jpg')
img = img.convert('RGB')
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<width-1:
w1=width-1
while w1>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 Image
def 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<width-1:
w1=width-1
while w1>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]<width):
img.putpixel((edge[i][0],i),(0,0,0))
if (0<=edge[i][1]<width):
img.putpixel((edge[i][1],i),(0,0,0))
#*********** End **********#
img.save('./step2/result/circleout.jpg')
替换背景色
from PIL import Image
def 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<width-1:
w1=width-1
while w1>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')