wordcloud无法生成mask对应的图片:UserWarning: mask image should be unsigned byte between 0 and 255.

老铁们,来看看,完整的报错信息是不是这个:

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] ,其不能是浮点型

如果你用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 ,且你传入的图片失效

可以将img转换一个类型再传入wordcloud构造函数

img = img.astype(np.uint8)

这样就OK

原创文章 66 获赞 14 访问量 9066

猜你喜欢

转载自blog.csdn.net/HaoZiHuang/article/details/105798801