wordcloud制作词云

  • 实验目的

Wordcloud库函数练习、PIL库函数练习。

  • 实验要求 

1、简述词云的函数主要参数。
2、简述PIL image库中常用的函数。
3、简述数字图像在计算机中的存储方式及数字图像坐标系。
4、简述卷积操作的过程。
5、简述PIL对图像进行滤波处理有哪些滤波器?
6、完成例【3.73】使用指定的图片显示词云统计结果,并简要解释代码。
7、完成例【3.77】表情图片的合成并将结果转换成灰度图,并简要解释代码。
8、完成例【3.79】读取一张图像,并将其转换成文本数据,并简要解释代码。
9、完成例【3.81】使用自定义的边缘检测模板对图像进行处理,并简要解释代码。

  • 实验过程与结果

        1、简述词云的函数主要参数。

(1)Font_path  数据类型为string ,表示字体文件所在的路径
(2)width  数据类型为int ,  表示画布宽度,默认为400px
(3)Height  数据类型为int , 表示画布高度,默认为200px
(4)Perfer_horizontal  数据类型为float ,表示词语水平方向排版出现的频率,默认为0.9
(5)Mask  数据类型为ndarray ,默认为None,使用二维遮罩绘制词云。如果mask非空,将忽略画布的宽度和高度,遮罩形状为mask
(6)Scale  数据类型为float ,表示放大画布的比例,默认为一倍
(7)Stopwords  数据类型为字符串 ,表示停用词,需要屏蔽的词,默认为空。如果为空,则使用内置的STOPWORDS
(8)Background_color  数据类型为字符串 ,表示背景颜色,默认为black黑色

        2、简述PIL image库中常用的函数。

(1)open() 表示打开图像 save() 表示保存图像 convert()表示图像格式转换 show() 表示显示图像 split() 表示从图像中拆分出各个通道 merge() 表示将多个通道合成一个图像 crop() 表示剪裁指定区域 resize() 表示缩放图像 blend() 表示将两幅图混合成一幅 filter() 表示设置滤波器对图像进行处理 fromarray()  表示从numpy的ndarray数组生成图像

3、简述数字图像在计算机中的存储方式及数字图像坐标系。

数字图像在计算机内的存储方式是点阵式的,每个点存储了该像素的颜色值。在数字图像坐标系中,图像的起始点在左上角为(0,0).图像向右下方延申,假设纵轴为X轴表示,横轴为Y轴表示,则一个像素可以使用(X,Y)坐标来获取。 

4、简述卷积操作的过程。

卷积是一种数学运算。图像处理中的卷积,是使用一个矩矩阵(称作算子、卷积核)对图像中的像素从头至尾,逐行、逐列进行处理。矩阵每次处理一个图像区域。该区域中的所有像素参与运算,然后相加,得到的和赋给位于区域中心的像素。于是,在一次卷积操作后,每个像素都会作为中心像素被更新。

5、简述PIL对图像进行滤波处理有哪些滤波器?

(1).BLUR:模糊
(2).CONTOUR:提取轮廓
(3).BETAIL:细节增强
(4).EDGE_ENHANCE:边缘增强
(5).EDGE_ENHANCE_MORE:深度边缘增强 
(6).EMBOSS:浮雕效果
(7).FIND_EDGES:查找边缘
(8).SMOOTH:平滑
(9).SMOOTH_MORE:深度平滑
(10).SHARPEN:锐化

6、使用指定的图片显示词云统计结果,并简要解释代码。
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from imageio import imread
text= open("song.txt",'r').read()
bg_pic= imread("notation.png")
stopwd=['is','a','the','to','of','in','on','at','and']
wdcd=WordCloud(mask=bg_pic,background_color='white',scale=1.5,stopwords=stopwd)
w=wdcd.generate(text)
plt.imshow(wdcd)
plt.axis('off')
plt.show()
wdcd.to_file('pic.jpg')
   
7、表情图片的合成并将结果转换成灰度图,并简要解释代码。
from PIL import Image
img1 =Image.open('1.jpg')
img1 = img1.convert('RGBA')
img2 = Image.open('2.jpg')
img2= img2.convert('RGBA')
img=Image.blend(img1,img2,0.5)
img.show()
img.save('blend.png')
8、读取一张图像,并将其转换成文本数据,并简要解释代码。
from PIL import Image
import numpy as np
import matplotlib.pyploy as plt
img = Image.open('lyy.png').convert('L')
img= np.array(img)
rows,cols = img.shape
txt = ""
for i in range(rows):
    for j in range(cols):
        if (img[i,j]<=128):
            txt +='1'
        else:
            txt += '0'
    txt += "\n"
with open('lyy.txt','w') as fl:
    fl.write(txt)
9、使用自定义的边缘检测模板对图像进行处理,并简要解释代码。
from PIL import Image,ImageFilter
im = Image.open('boy.jpg')
im.filter(ImageFilter.CONTOUR).save(r'FindCt.jpg')
im.filter(ImageFilter.FIND_EDGES).save(r'FindEg.jpg')

from PIL import Image,ImageDraw
img = Image.open('boy.jpg')
myFilter=ImageFilter.CONTOUR
myFilter.name='counter'
myFilter.filterargs=((3,3),1,255,(-1,-1,-1,-1,8,-1,-1,-1,-1))
imgfilted_b=img.filter(myFilter)
imgfilted_b.save('newFindCt.jpg')
imgfilted_b.show() 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蕊。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值