大家好,欢迎来到 Crossin的编程教室 !
国庆就要来了!朋友圈的很多小伙伴,已经换上了带国旗的头像,庆祝祖国生日。
不过还有些朋友不明就里,还在不停地@微信官方,希望能自动给头像加上一面国旗。然而等了半天,还是毫无反应……
其实不用那么麻烦啦,咱们都是有 Python 的人,图片拼接这种事,分分钟就可以了。
话不多说,直接上代码:
# -*- coding: utf8 -*-import cv2# 读取头像和国旗图案img_head = cv2.imread('head.jpg')img_flag = cv2.imread('flag.png')# 获取头像和国旗图案宽度w_head, h_head = img_head.shape[:2]w_flag, h_flag = img_flag.shape[:2]# 计算图案缩放比例scale = w_head / w_flag / 4# 缩放图案img_flag = cv2.resize(img_flag, (0, 0), fx=scale, fy=scale)# 获取缩放后新宽度w_flag, h_flag = img_flag.shape[:2]# 按3个通道合并图片for c in range(0, 3): img_head[w_head - w_flag:, h_head - h_flag:, c] = img_flag[:, :, c]# 保存最终结果cv2.imwrite('new_head.jpg', img_head)
这么多,就OK了。你只需要把这个代码copy到本地的一个py文件中并保存,然后在目录下放上一张头像图片和国旗图片,并把代码中的head.jpg和flag.png分别改成其文件名,然后用python执行此py文件即可。
效果展示:
求人不如求己,掌握python就是节约生命!
实现基本思路:
1. 读取进头像和国旗的图片
2. 根据头像和国旗的长宽,我们计算下图案需要缩放多少比例
3. 通过像素替换,将缩放后的国旗图案添加到头像图片的右下角
我们用了 python-opencv 库来处理图像,使用前需要安装。
关于 opencv 和图像处理,还可以看看我们之前的文章:
最后,提前祝大家国庆快乐!祝福祖国繁荣昌盛!
作者:Crossin的编程教室
【教程】: python
【答疑】: 666
领取专属 10元无门槛券
私享最新 技术干货