Python和OpenCV实现仿Github默认头像

思路

首先我们需要知道Github默认头像的一些参数。

  • GitHub默认头像是一个420*420像素的正方形图像,里面有个5*5的方块矩阵,每个方块为70*70像素。方块矩阵距离图像边缘的距离是35像素。
  • GitHub默认头像是左右对称的
  • GitHub默认头像的背景色是E6E6E6, 或者[230,230,230]

知道了这些以后,我们就可以着手开始做了。

这里我们用numpy来构建三维数组(宽,高,通道数)来表示一副图像。

首先我们构建一个420*420*3的三维数组。

1
avatar_data = np.empty((420, 420, 3), dtype=np.uint8)

然后把图像的每个像素都填充为背景色

1
avatar_data[:][:] = [230, 230, 230]

接着我们可以生成一个5*5的二维np.bool数组,并随机赋值为TrueFalse代表头像中方块矩阵的结构。

0或1的随机数可参考

1
2
import random
random.randint(0,1) # 随机返回[0, 1]区间内的整数

最后参照这个5*5的二维np.bool数组,在头像图像中,将对应的位置填充为相应的颜色即可。

源码

josephzxy-Github

Acknowledgment

思路借鉴于用Java和OpenCV生成Github默认头像