主要思路是用一张矩阵图像来作为mask,其中没有文字的用255,有文字的用0或者别的数字。
生成mask的代码如下
import numpy as np
import matplotlib.pyplot as plt
# 直径
diameter = 1080
# 这里的代码借鉴https://blog.csdn.net/yuzeyuan12/article/details/108572868
def generate_mask(img_height,img_width,radius,center_x,center_y):
y,x=np.ogrid[0:img_height,0:img_width]
# circle mask 这里得到的是True和False的mask
mask = (x-center_x)**2+(y-center_y)**2<=radius**2
# 这里变成255和0的mask
mask_255_0 = []
for i in range(mask.shape[0]):
mask_255_0.append([])
for j in range(mask.shape[1]):
if mask[i][j]:
mask_255_0[i].append(0)
else:
mask_255_0[i].append(255)
return np.array(mask_255_0)
mask = generate_mask(diameter,diameter,diameter/2,diameter/2,diameter/2)
plt.imshow(mask)
画出来应该长这样
填入WordCloud参数即可



