Processing——动态条形码

引言

条形码,虽然出现在我们生活的方方面面,但是却不被人在意,与条形码相伴的大多是垃圾桶和孤独的一个外包装。在人们眼中,条形码无外乎一堆竖线,有着宽度不等的多个黑条和空白,毫无生机,但是,条形码也是有灵魂的,博主这次做的就是想让条形码的灵魂更有趣。

背景资料

Design Barcode

日本的设计团队Design Barcode 从2005年开始就立志为一张张普通的条形码注入灵魂。他们的想法新颖而又有效,只需要简单的几笔,就能以艺术的手法绘制不同的条形码。
在这里插入图片描述
《神奈川条形码冲浪》,是不是给你一种夏天到来的冲动。
在这里插入图片描述
瀑布条形码,随着瀑布一泻千里。
在这里插入图片描述
同时,他们也解决了一个难题:如何让条形码看起来好吃。
这些充满创意的条形码,是Design Barcode团队送给这个世界最好的礼物。
如果对Design Barcode团队有兴趣的,欢迎继续访问他们的官网
http://www.d-barcode.com/barcodes.html

Steve Simpson

除了Design Barcode团队,设计师Steve Simpson也在黑白条纹中玩出了新花样。
在这里插入图片描述
这是某个牌子的烧烤酱。在这里插入图片描述
猜猜这是产品的条形码!?(提示:是一个吃的哦)
在这里插入图片描述
谜底揭晓:是这个牌子的霜冻优格,是不是整个产品都充满着活力与萌动。

创意思路

博主近期刚学过一门课程,交互设计,在课堂上老师生动讲述了向量、微分、细胞自动机等数学知识在艺术方面的应用,博主深感震撼。因此博主在综合两方面之后,想到条形码不只是“死”的,还可以是“活”的,在人们面前她只是死气沉沉的多个宽度不同的黑条和空白,但是,当人们走进她,接近她,她会展示她真实的一面,展示她生动的活力的一面。
我们都说“每个人都是独一无二的”,其实,每个条形码也都是与众不同的,她们承担着一份光荣的责任,虽然展示在外界的是一副副冰冷的面孔,可是她们的内心是炙热的,她们也有自己万里挑一的灵魂。正如坚守在各个岗位上的人们,尽管在旁人面前她们都是在机械、重复地做着一件事,但是当你走进她,你会发现一个不一样的她。
在这里插入图片描述
迎着暴雪依然坚守在岗位的交警。
在这里插入图片描述

几十年如一日地板书,孜孜不倦地教书育人。

技术实现思路

在技术实现方面,主要参考以下知识:
1、向量的应用。在这里我们假设每一个点都是一个二维向量,而这些每一个点拼成了一副完整的条形码,而基于向量,我们可以对每一个点进行操作,从而使整个条形码的运动自然而美观。
2、力的应用。当人们走进条形码(即鼠标接近条形码),条形码会做出不同的反应,在这里即可以把鼠标看作一个外力,条形码本身是维持一个稳态,但是当一个外力进入,稳态被打破,呈现出不一样的画面。
3、粒子系统。前面讲了,我们把每一个点看作一个向量,而这些点组合起来也就构成了一个粒子系统,因此对一个条形码的操作,实际是对这些点构成的粒子系统的操作。
4、细胞自动机。在其中一个条形码中加入细胞自动机的原理,原始条形码为第一代,当人们与她互动时她才会不断迭代。
5、自治智能体。在其中一个条形码中会加入自治智能体的原理,设定好每个点和鼠标的关系,使其自动变换。

技术实现细节

最终系统由五个类和一个主程序构成,五种Bar,在主程序的控制下进行绘制。

细胞自动机的实现

原理:细胞自动机是随着时间推移发生状态转移的系统。
细胞自动机由“细胞”对象组成,有以下特性:
A.细胞存在于网格中
B.每个细胞都有一个状态,但可能出现的状态数量是有限的,最简单的即1和0
C.每个细胞都有邻居
D.每个细胞下一个时间点的状态均由其邻居的状态决定
代码实现:
在这里插入图片描述
初始化细胞自动机。
在这里插入图片描述
根据当前状况,迭代变化。
在这里插入图片描述
绘制细胞自动机。

力、向量、粒子系统、自治智能体结合

原理:粒子系统,顾名思义,由多个粒子(对象)组成的系统,而在这次实现中,粒子即是向量。向量,有大小,有方向,力即是向量,对于向量的操作,可以更容易反映现实世界中存在的物理规律,也使整个系统的实现更有理论依据。而力、向量、粒子系统均是自治智能体的一部分,那么什么是自治智能体呢,自治智能体又有哪些特点,接下来让我们了解一下~
自治智能体是指那些根据自身意愿做出行为决定的主体。自治智能体有三个特性:
A.自治智能体对环境的感知能力是有限的
B.自治智能体需要处理来自外部环境的信息
C.自治智能体没有领导者
而在这次条形码的绘制中,我们是假设整个系统初始是处于一种稳态,当鼠标进入,即有外部环境的信息进入,自治智能体需要给予反馈,作出相应的反应。
核心代码(部)
在这里插入图片描述
更新每一时刻粒子的状况,与鼠标做交互。
在这里插入图片描述
根据状态绘制粒子。

主程序(部)

在这里插入图片描述
Bar1初始化。
在这里插入图片描述
主绘制程序。

浅谈向量

最后,我们再来说一下系统中均会出现的向量。
向量,是一个神奇的物件,他在编程中几乎可以处处出现。
《代码本色》
在《代码本色》这本书中,第一章即讲的是向量,在这本书里面,谈论的是欧几里得向量,定义是:一个既有大小又有方向的几何对象。向量通常被描述为一个带箭头的线段,线段的长度代表向量的大小,箭头所指的方向即向量的方向。向量有很多运算方法,加、减、乘、除、单位化、点乘,叉乘等等,这些方法在processing或openframeworks均可以通过一行代码实现,但是这些运算方法的结合可以呈现出各种各样的效果,书中后面出现的力、粒子系统、自治智能体等等都是在向量的基础上加以综合应用才出来的,没有向量,这些概念的提出也就少了很多光彩。
机器学习
在当前学习的计算机视觉课中,特征向量也是极其重要的一个概念。简单介绍特征向量,即一种在经过特定的变换之后方向不变,只是长度上伸缩的向量。而看它的原始公式:
Ax=λx
对应一个矩阵A,存在一个实数λ和和非零向量x,满足上面公式,则可以称λ为矩阵A的特征值,x为该特征值对应的特征向量。当然,特征向量在机器学习中也应用颇广。
神经网络
在深度学习中,初学者听说最多的一句话恐怕是“将数据向量化表示”,这里向量化表示可以理解为一个高维矩阵,将大规模数据用一个高维数据来表示,在运算时可以极大地减少运算时间,增加运算效率。
NLP问题
在NLP问题中,预处理往往是将文本数据进行词向量化(Word Embedding)表示,也就是将词数学化,目前最常见的词表示方法是One-hot Representation,即将每个词表示为一个很长的向量,这个向量的维度是词表的大小,其中绝大多数元素为0,只有一个维度的值为1,这个维度即代表了当前的词。例如:
“apple”表示为[0,0,0,0,0,0,0,0,0,1,0,0,0…]
“sun”表示为[0,1,0,0,0,0,0,0,0,0,0,0,0…]
每个词都是茫茫0海中的一个1。通过这个方式便可以把自然语言用数学符号表示出来,当然,在现在Deep learning中,使用的方法往往是另一种,称为Distributed Representation,这种一般表示为[0.0120,-0.108,-0.122,0.692…],这种相较于之前的好处是可以给两个词定义一种相关性,在距离上越近,相关性越强。有兴趣的可以读Hinton在1986年的论文《Learning distributed representations of concepts》,这是第一次提出Distributed Representation的概念。
感受
有些看似很简单的概念,但是在各个领域中都存在着它们的身影,看现在很多新突破,大部分都是基于最传统、最经典的概念做出的一些改进,有时我们只是看懂了它的字面意义,但是却没有搞懂它在应用方面的实际意义,现在工程上的突破,绝大多数是基于数学公式的,没有数学理论的支撑,整个工程便毫无意义,再来看艺术的创造,同样在具有数学理论下也更有活力,例如拉普拉斯变换、深度学习风格迁移,均是有一定的数学支撑,(值得一提的是,深度学习所提出的图卷积网络,也是用到了拉普拉斯矩阵,有兴趣的可以来这里看看)所以,无论什么时候,《高等数学》这本书还是值得放在床头随手翻翻的[滑稽脸]~

交互设计

交互设计主要通过鼠标和键盘。
当鼠标进入条形码中,条形码会自动与鼠标进行交互。
当鼠标进入可以选择区域,鼠标由箭头变为手势,提示可以点击。
当鼠标点击,变为彩色模式,再次点击变为黑白模式。
当敲击键盘,所有变换消失,重新初始化。

单独效果展示

每一个条形码都是一个独特的个体,都能散发自己的魅力,都能在这平凡的世界中展现一个不平凡的自我。

在这里插入图片描述
随着鼠标的移动,条形码围绕鼠标形成一个圆,周围的码线也跟随着一起游动,整个画面优美和谐,这,也许就是条形码的艺术细胞。
在这里插入图片描述
随着鼠标的进入,整个条形码发生了巨大的变化,不要惊讶,只是鼠标的进入使整个条形码细胞机开始运转,这是条形码的一种娱乐方式,也是条形码的内含的一种科学机制。
在这里插入图片描述
犹如徜徉在海洋里,后面是溅起的浪花,自由自在。
在这里插入图片描述
条形码也是有自己狂野的一面,她们也会享受生活,享受存在的意义。
在这里插入图片描述
看,随着鼠标的移动,像不像有一把剪刀,剪出了无数根悠长的线。

集体演奏会

生活是一部大电影,每个条形码都在其中扮演着不同的角色,当不同的角色在同一部电影同时绽放光彩时,相信,这一定会震撼人心。
在这里插入图片描述

光彩绚丽的外表

对于条形码来说,仅仅有一个有趣的灵魂是不够的,她们也渴望有一个光彩绚丽的外表,也渴望以一种不同的面貌出现在观众面前。在这里插入图片描述
是的,正如你看的一样,在这场演奏中,你就是指挥家,所有条形码都会在你的指挥下进行表演,也许你喜欢温柔甜美,也许你喜欢狂野奔放,相信我,你都可以驾驭,也请你相信自己,做自己生活的导演,展现自己的风采。

参考材料:
一张被注入灵魂的条形码,到底能有多骚?
Barcodes
趣图:条形码的艺术
词向量和语言模型
特征值和特征向量的几何意义
深度学习之词向量篇

### 回答1: 数字信号处理(DSP)是一种广泛应用于各个领域的信号处理技术。其基本原理涉及对数字信号进行采样、量化和离散化处理,以及使用算法和数学方法对信号进行分析、转换和增强。 DSP的基本原理主要包括以下几个方面。首先,采样是将连续时间信号转化为离散时间信号的过程。通过在一定时间间隔内测量信号的取样值,可以获得离散的取样序列。其次,量化是将连续幅度范围内的信号值转换为离散的幅度级别。通常使用模拟到数字转换器(ADC)将连续信号量化为数字信号。最后,离散化是将连续时间信号转化为离散时间信号的过程。使用离散化技术可以将连续时间信号转化为离散序列,如离散时间的傅里叶变换。 在DSP中,还有一些关键原理需要掌握。例如,滤波是通过处理输入信号,去除不需要的频率分量或噪声。滤波可以分为时域滤波和频域滤波。此外,频谱分析是通过将信号转换到频域,以便分析不同频率成分的技术。常见的频谱分析方法包括傅里叶变换和快速傅里叶变换(FFT)。 在DSP中,还有一些高级原理和算法,例如数字滤波器设计、时域和频域处理技术、谱估计技术以及信号重建等。这些原理和方法在音频处理、图像处理、通信系统、雷达系统等领域具有重要的应用。 《数字信号处理——原理》是一本深入介绍DSP基本原理和高级应用的著作,可以帮助读者全面了解数字信号处理技术的原理、方法和应用。这本书提供了丰富的实例和案例,对于学习和研究DSP的学生和专业人士来说都是一本难得的参考书。 ### 回答2: 数字信号处理(Digital Signal Processing,缩写为DSP)是一种运用数学和算法处理数字信号的技术。数字信号是在时间上离散的信号,它们可以通过模拟信号的采样和量化得到。数字信号处理通过对数字信号进行滤波、变换、压缩、编码等操作,来提取和改变信号中的信息。 数字信号处理的原理主要涉及信号的采样、量化、编码和恢复。首先,信号必须以一定的采样频率进行采样,以在时间上进行离散化。其次,采样后的信号需要进行量化,即将连续的信号值转换为一些离散的数值,通常采用固定精度的量化器来实现。接着,量化后的信号需要进行编码,将其转换为二进制数以便在数字系统中进行传输和处理。最后,接收端需要对编码信号进行解码和恢复,以便还原原始信号。 在数字信号处理中,常见的操作包括滤波、变换和压缩。滤波是通过调整信号的频率特性来去除噪声、改善信号质量等。变换是将信号从一种域转换为另一种域,例如将时域信号转换为频域信号,从而方便进行频谱分析和处理。压缩是通过去除冗余信息和编码技术来减少信号的存储空间和传输带宽。 数字信号处理在很多领域都有广泛的应用,包括通信、音频处理、图像处理、雷达信号处理等。它的发展和应用推动了信息技术的快速发展,使得我们可以更有效地处理和传输大量的信号和数据。同时,数字信号处理也面临着算法设计、信号鲁棒性、实时性等挑战,需要不断地进行研究和改进。 ### 回答3: 数字信号处理(Digital Signal Processing,DSP)是一种将连续信号转换为数字形式,并利用计算机对数字信号进行处理的技术。DSP的基本原理如下: 1. 采样:连续信号需要经过采样,即按照一定时间间隔对信号进行取样。采样率越高,还原信号的准确度越高。 2. 傅里叶变换:采样后的信号通过傅里叶变换可以将时域信号转换为频域信号。傅里叶变换可以将信号分解为一系列频率成分,方便后续处理。 3. 滤波:通过滤波器,可以对信号进行去噪或者滤波操作。低通滤波器可以去除高频部分,高通滤波器可以去除低频部分,带通滤波器可以选择某个频率范围内的信号。 4. 编码:将数字信号进行编码,以便传输和处理。常见的编码方式有脉冲编码调制(PCM)、压缩编码(例如MP3)等。 5. 数字滤波:通过数字滤波器可以对数字信号进行进一步滤波,去除不需要的频率成分。 6. 快速算法:由于DSP需要进行大量的计算,快速算法可以提高计算速度和效率。常见的快速算法有快速傅里叶变换(FFT)等。 7. 数学模型:DSP利用数学模型对信号进行建模,方便对信号进行分析和处理。 总的来说,数字信号处理通过将连续信号转换为数字形式,并利用数字滤波、编码、快速算法等技术进行信号处理,可以实现信号的增强、去噪、压缩和分析等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值