圣诞老人python代码_用Python画圣诞老人的N种方法

本文介绍了如何使用Python进行创意编程,包括将图像转换为二值图、绘制圣诞老人的词云图、创建字符图,以及利用imageio制作动态图。通过这些方法,展示了Python在数据可视化和趣味编程中的应用,为庆祝圣诞节带来独特乐趣。
摘要由CSDN通过智能技术生成

看一下效果:

2).与灰度图类似,PIL还可以将图像转换为二值图

所谓二值图,即图像上每个像素的颜色非黑即白,图像的二值化 能在保留图像轮廓的前提下使图像中数据量大幅减少,对图像的进一步处理具有非常重要的作用。

执行以下代码:

再来看看新生成的图片效果:

此类操作的主要用途是为图片的进一步处理奠定基础,当然,无论是PIL还是openCV都可以对图像进行更加复杂的处理操作,然而这并不是我们今天的重点,有兴趣的朋友玩玩就好。

2.数据时代:词云图

“大数据”这个概念刚刚进入大众视野的时候,各种与数据相关的场合基本都会见到词云图的身影,好像没有词云图 就没法谈数据。虽然时至今日词云图已不再新奇,但毕竟是一种可视化的展示方式,用来画一幅圣诞老人的词云图 也未尝不可。

画这种词云图需要两个素材,一是以空格为间隔的词语字符串,二是背景图片。既然是圣诞节主题,这里选用小说 《哈利波特与穿越者》第八章《圣诞节》作为词语素材,然后对文本进行jieba分词和字符串处理得到画词云图用的 词源,代码如下:

然后找一幅圣诞老人的图片,在此基础上使用wordcloud绘制词云图,原图就不看了,直接看绘制后的词云图:

排除分词的准确度,单看词云图效果还是不错的,绘图相关代码如下:

3.字符跳舞:字符图

相信刷抖音的朋友都还记得前段时间风靡一时的字符跳舞,做字符舞视频的基础就是根据原图生成对应的字符图。

字符图的绘制思路与词云图有些类似,都是以一幅图为基准绘制字符(符号),不同的是字符图需要遍历基准图的 每一个像素,根据像素的RGB和亮度转换成对应的字符,还要考虑像素尺寸和单个字符尺寸的转换比例,而在词云 图中这些都是不需要考虑的。

绘制字符图首先要根据原图尺寸建立新图,然后结合单个字符尺寸对原图进行等比例缩放,不然绘制出的字符图会出现失真的情况,这部分操作代码如下:

上面一步完成后,就要对原图中的每一个像素进行遍历,按照一定的规则转换为对应字符,然后在新建的空白图像中按照原位置(坐标)绘制相应字符,代码如下:

同样,不展示圣诞老人原图,直接看下转换后的字符图效果(下图)。另外,如果有需求,在绘制字符的过程中也可以按原图中的像素颜色对字符进行着色操作,这里就不演示了。

4.一气呵成:动态图

制作动图我们用一个第三方库imageio, 这个第三方库功能如其名,其长处在于能把图片以各种格式读入然后再以各种格式导出,当然也就包括gif格式的动图。在制作动图之前需要先准备好一组静态图,然后调用imageio包的mimwrite方法进行合成,代码如下。

'gif.gif'为输出文件名称,可任意指定;

gifList中保存了作为数据源的静态图;

duration为动态图的切换间隔。

合成后的动图效果如下:

据说投稿多了,就会变成高手

看完了上面的一波操作,是不是发现Python还是很有趣的,特别是动手写点代码捣鼓一些小玩意来庆祝圣诞节别有一番风味,你说呢,欢迎留言讨论!

近期热门:

电影"海王"真的好看吗|我爬取了9000条影评,得出的结论是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值