PHP图像合成技术和PHPqrcode API接入的研究

2020-05-25 10:47余晓江
大众科学·下旬 2020年3期

余晓江

摘 要:近年来图像合成被大量使用在信息压缩、动画演算、图像修复和编辑等场景,已经成为计算机图形学一个重要的研究课题。在探讨了二维图像合成技术的基本理论的基础上,本文阐述了利用PHP QrCode来进行图像合成的方法,并探析了PHP QrCode的网络接入方法及良好的图像合成成效。

关键词:图像合成;PHP;API;QrCode

纹理在基于图像的真实感绘制中起到了非常重要的作用,这是因为它可以用来描述很多表面特征。通过纹理合成可以获取一些新纹理。因此,利用纹理合成技术合成新纹理,将其用于真实感绘制中,已经成为当前计算机图形学中的一个重要的研究课题。

1.理论基础

1.1 PHP语言特点

PHP作为脚本语言,在语法上极其相似于C、Perl语言,我们通常用PHP来开发动态的网站系统。相比较而言,PHP在动态网页开发中占据以下几方面优势,因而我们将PHP选为开发语言。

(1)开放性强,在部分开源平台上,开发者会在平台上开放PHP代码,以供学习者学习并运用.

(2)PHP具有强大的可移植性,它的运行条件可以满足不同的平台,这对开发人员来说,能够自由安全的基础上选择运行平台。

(3)PHP语言非常便捷,使用容易,开发便利,且具有良好的交互性,可以把代码镶嵌入HTML来开发动态网站。

(4)PHP可以面向对象,我们都知道PHP只是脚本语言,但是面向对象的思想同样可以运用于PHP。

除此之外,PHP平台具有多样化,且拥有多种不同风格软件供开发者使用。PHP还对链接数据库提供了许多便捷路径,这也是PHP在互联网开发中得到广泛应用的直接原因,同时PHP有API可以直接调用protocol、IMAP、POP3等通讯协议

1.2 图像合成技术

为了更好理解二维图像纹理合成技术,下面介绍与之相关的基本概念,并在此基础上分类总结合成算法。

(1)MRF模型

图像本身具有一定的局部纹理特点,这些特征片区之内所有的像素只和空间邻域内的像素集合有关联,这种现象完全遵照马尔可夫随机场理论。故而图像合成过程,尤其是二维图像合成一般使用MRF模型,基于MRF的纹理合成思想:对于当前待合成的像素或块,统计其空间邻域或特征区块的交叉区块与纹理样图中所有像素或块的SSD,继而基于相似度匹配方法来挑出相似度最高的邻域的特征区块,最后将这些区块的像素复制到输出图像中进行合成。

(2)像素的邻域及其邻域匹配

像素的邻域可定义如下:纹理合成中,以该像素为中心的矩形区域与已合成像素的相交区域。像素的邻域匹配实际上是选择邻域误差较小的邻域过程。具体地,基于点的纹理合成中,计算出输出图像中当前像素与纹理样图中每一个像素的邻域误差后,选择误差较小的邻域作为最佳匹配,这个过程称为邻域匹配。

领域误差是指像素q1,q2空间邻域中对应位置处的SSD。L2距离定义如下

其中,N1为像素q1的邻域,N2为像素q2的邻域,从与从的形状相同,p是N1与N2中对应位置处的像素。

(3)基于块的纹理合成

基于块的纹理合成,以像素块为基本单位,每次在输出图像中合成一个块,直至输出图像被填满为止。每次进行块合成时,根据MRF邻域匹配的准则,首先在输出图像中提取对应块的邻域;然后在输入纹理样图中,根据邻域块的边界匹配准则,查找最相似的图像块,并将该图像块拷贝到输出图像中。

2.PHP在图像合成中的应用

2.1 PHP QRCode

PHP QRCode是一个基于GNU通用公共许可协议的开源库,用于生成二维码、二维条形码。基于Lib-Qrencode C依赖库,提供了创建二维码图像(PNG, JPEG多亏了GD2)的API。完全在PHP中实现,沒有外部依赖函数(除特殊需求外)。该函数库有以下特点:

可以将数字,字母加数字及8位的汉字编码的字符转化为二维码;

完全在PHP中实现,除了GD2之外没有外部依赖;

合成图像可以导出为PNG, JPEG格式,也可以导出为位表;

配置简单;

可以用于加速计算的数据缓存;

具备调试数据转储、错误日志记录、时间基准测试功能;

2.2 PHP API接入

作为用户与PHP软件之间的接口,用户通过接入API,可以快速、有效和安全地操纵平台中的各类软件,以处理自身程序中的各种问题及需求。该接口是为程序员在编程时使用的,系统和应用程序通过这个接口,可在执行中访问系统中的资源和取得OS的服务,它也是程序取得操作系统服务的唯一途径。大多数软件程序接口是由一组系统调用(system call)组成,每一个系统调用都是一个能完成特定功能的子程序。

PHP QrCode作为PHP平台的API之一,其接入规则与其他API基本无异,其流程如下图所示。

phpqrcode.php提供了一个关键的png方法,其中参数$text表示生成二位的信息文本;参数$outfile表示是否输出二维码图片文件,默认否;参数$level表示容错率,也就是有被覆盖的区域还能识别,分别是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%); 参数$size表示生成图片大小,默认是3;参数$margin表示二维码周围边框空白区域间距值;参数$saveandprint表示是否保存二维码并显示。

在调用API完成之后,只需要按照上述函数语法进行对phpqrcode进行配置即可获得想要的合成图像效果。

3.PHP QrCode使用成效

在探讨了二维图像合成技术的基本理论的基础上,本文阐述了利用PHP QrCode来进行图像合成的方法,其合成图像如上图所示。上图即将文字信息成功的转码并合成一副二维图像,通过扫描该图像可以看到文本的摘要信息。

参考文献

[1]顾佳玲,彭宏京. 基于随机查找的并行大规模纹理合成[J].系统仿真学报,2015, 21(8):2441-2445.