首页 > 编程语言 >在 Python 中使用数据创建艺术字

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

时间:2022-09-20 12:25:17浏览次数:122  
标签:艺术 Python 创建 散点图 像素 Fig 使用 我们

在 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

标签:艺术,Python,创建,散点图,像素,Fig,使用,我们
From: https://www.cnblogs.com/amboke/p/16710600.html

相关文章

  • 如何在idea上创建gitlab远程分支
    git分支只需要在idea里面创建新分支,然后直接push,gitlab上面就有新分支了     ......
  • python执行windows远程解压文件命令
    由于公司网络限制,业务人员反馈在本地解压远程文件夹下面的压缩包很慢,网络上也不能修改其它权限,所以想通过python实现在本地执行远程命令解压远程文件importwinrmimpor......
  • sqlserver 创建分区表(转载)
    我们知道很多事情都存在一个分治的思想,同样的道理我们也可以用到数据表上,当一个表很大很大的时候,我们就会想到将表拆分成很多小表,查询的时候就到各个小表去查,最后进行汇总......
  • Python中使用pyyaml对yaml文件进行读写删操作
    安装库pipinstallpyyaml读取yaml/yam格式的文件defget_yaml(filepath)->list:""":paramfilepath:文件路径:return:传入数据的列表"""......
  • python-赋值、浅拷贝、深拷贝的区别
    Python中有6个标准的数据类型,它们又分为可变对象和不可变对象不可变对象:Number(数字)、String(字符串)、Tuple(元组)可变对象:List(列表)、Dictionary(字典)、Set(集合)可变对象是指......
  • Python桌面应用开发 ——— PyQT5
    Qt是一个跨平台的C++开发库,主要用来开发图形用户界面(GraphicalUserInterface,GUI)程序,当然也可以开发不带界面的命令行(CommandUserInterface,CUI)程序。PyQT5简介PyQt......
  • Python数据分析教程(一):Numpy
    数据的纬度一维数据:列表和集合类型二维数据:列表类型多维数据:列表类型高维数据:字典类型或数据表示格式,如json、xml、yaml维度:一组数据的组织形式列表和数组:一组......
  • Python第3章实验报告
    一、实验题目Python第三章实例和实战作业二、实验目的和要求1.熟悉Pycharm的运行环境2.学习并掌握Python的流程控制语句三、主要仪器设备联想小新air15硬件:AMDR75......
  • java中创建链表数组
    importjava.util.ArrayList;importjava.util.LinkedList;publicclassmain{publicstaticvoidmain(String[]args){LinkedListlist1=ne......
  • Java自定义类创建对象数组并赋值
    以下代码执行会报错。出错代码:publicclassTest{publicstaticvoidmain(String[]args){Person[]P1=newPerson[2];P1[0].setAge(20);......