老铁们,来看看,完整的报错信息是不是这个:
xxx/python3.7/site-packages/wordcloud/wordcloud.py:735:
UserWarning: mask image should be unsigned byte between 0 and 255.
Got a float array.
warnings.warn("mask image should be unsigned byte between 0"
他的意思是,你的图片位深度必须是8位,即取值范围为: [ 0 : 255 ] [0 : 255] [0:255],其不能是浮点型
如果你用openCV
读取,那一定没有问题,其默认读取位深度为8位
我猜测你可能使用matplotlib
来读入图片的:
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img = plt.imread('mask.png')
img = mpimg.imread('mask.png')
这样读取图片默认都是np.float32
类型的,将这个img
传给wordcloud
构造函数时,其会返回你那个
w
a
r
n
i
n
g
warning
warning,且你传入的图片失效
可以将img
转换一个类型再传入wordcloud
构造函数
img = img.astype(np.uint8)
这样就OK