上回说到使用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 !!!
更多好玩有趣的可以关注我的个人公众号:
网友评论