知行编程网知行编程网  2022-01-18 18:48 知行编程网 隐藏边栏 |   抢沙发  3 
文章评分 0 次,平均分 0.0

在日常生活中,我们经常会存取一些朋友们的丑照,在这个项目中,我们以萌萌哒的熊猫头作为背景,然后试着在背景图上加入朋友们的照片。效果如下图所示。

把你的朋友变成表情包?Python:So easy

把你的朋友变成表情包?Python:So easy
把你的朋友变成表情包?Python:So easy

实现步骤

  • 导入朋友的照片(前景照片);
  • 处理前景照片(缩放、旋转,填充);
  • 导入熊猫头照片(背景照片);
  • 将前景和背景拼接起来形成表情包;
  • 在表情包下面添加文字。

1、导入需要的库

这个项目主要是通过 opencv 完成,但如果要在表情包下面写中文的话,PIL(pillow)库是必不可少的。

2、绘图函数

这里写一个绘图函数,方便绘图操作。

3、导入前景照片

把你的朋友变成表情包?Python:So easy

4、等比例缩放前景照片

因为我们发现前景照片的尺寸比背景尺寸还要大,这显然是不合适的,所以要先对其进行等比例(0.3)缩放。

把你的朋友变成表情包?Python:So easy

5、对前景照片进行二值化处理

在这里,我们将像素值大于 80 的区域设置为 255;小于 80 的区域设置成 0。

把你的朋友变成表情包?Python:So easy

6、提取出感兴趣区域

把你的朋友变成表情包?Python:So easy

7、旋转图片

因为我们的背景图片(熊猫头)是正的,而前景图片有些向右倾斜,所以要先对其进行旋转操作(大概逆时针旋转 15 度即可)。

把你的朋友变成表情包?Python:So easy

8、将一些不需要的黑色区域删除掉

在这里我们使用 cv2.fillPoly 函数对不需要的区域用白色进行填充。

把你的朋友变成表情包?Python:So easy

9、再次提取感兴趣区域并缩放

把你的朋友变成表情包?Python:So easy把你的朋友变成表情包?Python:So easy

10、导入背景图片

把你的朋友变成表情包?Python:So easy

11、组合两张图片成表情包

把你的朋友变成表情包?Python:So easy

12、在表情包下面添加文本

12.1 添加英文文本

如果只是要添加英文文本,用 opencv 就可以解决:

把你的朋友变成表情包?Python:So easy

12.2 添加中文文本

如果要添加中文文本,我们需要借助 PIL 库来实现。

把你的朋友变成表情包?Python:So easy

13、保存表情包

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享