我用Python造了一个词云。不过这次创建的是与图像颜色匹配的词云。

使用Python wordcloud模块创建一个词云。

掩码在wordcloud模块的WordCloud类的构造函数的参数中指定。掩码以ndarray格式指定。如果为像素指定了白色,它将被遮罩。

如果要使用彩色图像作为蒙版,您可以将其颜色作为彩色映射。

ImageColorGenerator

wordcloud类之一是ImageColorGenerator。就是词云颜色生成器(基于图片颜色)。

C = wordcloud.ImageColorGenerator(image, [default_color])

变量 类型 内容
image 数组 创建词云时使用的图像。
default_color 元组 可选的。默认值为“None”。当画布尺寸大于为其创建颜色信息的图像时,指定颜色。(r,g,b)
C 指示画布颜色信息的对象。

将这个对象作为WordCloud类的结构化参数来传递。

尝试一下把图像linuxmi.com.jpg做成词云。

文本自己做一个吧,我这里使用linuxmi.com.txt

为蒙板读取的图像将直接用于蒙板和颜色信息。

将ImageColorGenerator创建的对象传递给WordCloud构造函数时,指定的参数为color_func。

然后是一个执行示例。

from PIL import Image
import numpy as np
from wordcloud import WordCloud, ImageColorGenerator

# 读取原始文本 
with open('linuxmi.txt', mode='rt', encoding='utf-8') as fi:
    source_text = fi.read()

# 创建蒙板图像 
mask_array = np.array(Image.open('linuxmi.com.jpg'))

image_color = ImageColorGenerator(mask_array)

# 创建词云 
wc = WordCloud(mask=mask_array, color_func=image_color, background_color='white').generate(source_text)

# 直接保存在文件中的情况下,用to_file方法
wc.to_file('linuxmi.com.png')

# 用PIL表示
#image_array = wc.to_array()
#img = Image.fromarray(image_array)
#img.show()

这是您输入的蒙版图像。

输出将如下所示。

看起来就像上图,OK,就这样。

发表评论

电子邮件地址不会被公开。 必填项已用*标注