python还可以这么玩?(二)

上回说到使用python制作卡通表情包,这次将继续使用python利用真人照制作表情包,真人照与卡通照最大的区别是,真人照有更多的色彩需要处理。

处理流程和之前一样,先打开轮廓图片,再打开表情图片进行裁剪,获取图片中的表情部分。

获取表情部分

该操作可以又分为两步:1. 对图片进行脱色变成灰度图;2.对生成好的灰度图只保留轮廓,去除其他颜色。

1.导入要用的第三方包

import cv2

2.将获取到的真实图片表情部分转化为灰度图:

img = cv2.imread("表情图片名称")

img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # 转化为灰度图

img_gray_inv = 255 - img_gray

img_blur = cv2.GaussianBlur(img_gray_inv, ksize=(21,21), sigmaX=0, sigmaY=0)

img_blend = cv2.divide(img_gray, 255-img_blur, scale=255)

3.获取转化成灰度图的宽、高,使用循环,数组的方式获取每个像素点的颜色值,对其进行转换,只留下图片轮廓:

rows, cols = img.shape # 图形的宽、高

for i in range(rows):

for j in range(cols):

if img[i][j] <=210:

img[i][j] =0

elif img[i][j] >=240:

img[i][j] =255

else:

continue

4.如上步骤获取图片轮廓:

取出图片轮廓

5.将处理好的表情图片合成到轮廓图片上:

合成了最终的表情包

如果各位没有看的太明白的话,可以看第一批《python还可以这么玩》,了解步骤,最终生成有趣的表情包,从此别人有ps,你有python,做个表情包还是so easy !!!

更多好玩有趣的可以关注我的个人公众号:

你可能感兴趣的:(python还可以这么玩?(二))