在 Python 中使用数据创建艺术字

在 Python 中使用数据创建艺术字

_ 打破常规——一个快速而有创意的项目,使用 python 最流行的数据可视化工具来创建创意艺术字。_

Fig. 1: Final effect of the generated text for the baseline app.

目录

· ⭐️ 环境
· ⭐️ 首先,在图片上打印文字
· ⭐️ 然后,表演时间

环境

这个项目只需要三个工具: matplotlib 简历2 麻木的 如果你没有它们,就做 pip install matplotlib opencv-python numpy .

我们使用 Jupyter Notebook 运行代码。但是,您可以使用任何您想要的工具,只要它们可以展示您的艺术杰作。要导入库:

 导入简历2  
 将 numpy 导入为 np  
 将 matplotlib.pyplot 导入为 plt

⭐️ 首先,在图片上打印文字

为了打印单词,我们使用 cv2.putText 功能。这个函数基本上会使用用户给定的配置在输入图像上写一个字。

因此,我们首先将输入一个全为零的空数组。但是,数组的大小很重要,因为大小太大会留下太多空白空间,而大小太小会导致单词显示不完整。

经过实验,我们发现了所选特定字体和字体大小的“最佳位置”。这在创建它时以数组的形状显示。我们还注意到,如果单词中有特殊字符,它们会占用不同的空间。因此,我们使用python字符串的内置函数扫描每个字符并测试其中有多少是特殊字符 是阿尔法() .

输出:

Fig. 2: Output from the snippet above. This is an array of zeros and ones highlighted in yellow color and zeros represented as a purple background.

⭐️ 然后,表演时间

此时,您将拥有一个代表每个像素的 0 和 1 数组。要产生如图1所示的效果,实际上是一个 散点图 ,我们需要使用 散点图 函数,其参数代表x和y坐标。

为了生成坐标,我们简单地使用嵌套的 for 循环遍历图像的每个像素,该循环将记录坐标。

然而,并不是每个像素都会被记录下来,否则输出就不会很有趣。相反,我们会随机选取像素并绘制它们。在这里,我们设置阈值 点密度 将像素绘制为 0.05,这意味着只有大约 5% 的像素会被绘制出来。

为了创造更多的艺术效果,应该添加多种颜色。因此,我们可以创建多个散点图并为每个图设置权重阈值,规定我们希望在最终图中看到多少颜色。这是通过设置三个不同的权重来完成的 颜色重量 多变的。

最终代码如下所示。

希望你喜欢它!

Fig. 3: Kaggle platform’s 404 image, which inspired this project.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/38178/03252012

posted @ 2022-09-20 12:05  哈哈哈来了啊啊啊  阅读(803)  评论(0编辑  收藏  举报