在 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 版权协议,转载请附上原文出处链接和本声明