嵌入视觉信息的二维条形码的制作方法与工艺

文档序号:11971580阅读:251来源:国知局
嵌入视觉信息的二维条形码的制作方法与工艺
本申请一般涉及二维条形码,该二维条形码中嵌入了良好视觉质量的图像,同时保持了嵌入到该二维条形码中的信息的解码的稳定性和可靠性。

背景技术:
本申请要求2012年5月3日提交的、标题为“将视觉信息嵌入二维条形码的方法(Methodforembeddingvisualinformationintwo-dimensionalbarcodes)”的、第61/687,877号美国临时专利申请的优先权,其全部内容通过引用并入本文中。条形码最简单的表现形式是一种机器可读的数据表示标签。库存管理或物流的扫描设备可以利用条形码快速和可靠地识别物体。传统的条形码是一维的黑白条形码。然而,现代条码不再局限于单一的维度以及黑白色的色彩设计。条形码可以被设计成具有各种颜色的二维条形码。相比传统的一维黑白相间的条形码,现代条形码可以提供增强的数据存储能力、增强的反应能力、以及增强的鲁棒性和可靠性。在市场上,存在几种不同的二维条形码设计,包括丰田商通(DensoWave)设计的快速反应码(QRcode),美国国际资料公司(InternationalDataMatrix)设计的数据矩阵(DataMatrix),微软设计的高容量彩色条码(HCCB),以及其他的条形码。由于具有更高的存储容量,在现代的二维条形码中存储的数据不仅仅包括简单的产品标识。在一个现代化的二维条形码中存储的数据除了产品信息之外,还可以包括联系信息、E-mail地址、日历事件、GPS(全球定位系统)的位置、短消息服务(SMS)文本消息、网站的超级链接、无线网络连接信息等。现代二维条形码已得到了广泛的普及,并被广泛地被商业应用,远远超出了库存控制和物流的范畴。现代二维条形码(尤其是QR码)可用于移动广告中作为吸引潜在客户的注意力的工具。例如,公司可以利用印在报纸或杂志二维条形码,吸引潜在客户的注意力。潜在的客户看到二维条形码后,使用智能手机或平板电脑应用软件拍摄照片,并取得编码的二维条形码(例如,特殊的优惠券)中的信息。由于移动技术的突飞猛进,现代二维条形码可以用作营销工具。大多数现有的智能手机和平板电脑都配备了高处理能力、大容量内存存储、高品质的内置摄像头以及多任务处理能力。各种各样的条码移动应用软件使得智能手机或平板电脑可以快速、高效、可靠地解码存储在条形码中的数据。智能手机和平板电脑的流行和廉价的移动条形码扫描应用使条形码技术得以广泛采用,不再需要专门的、笨重和昂贵的条形码扫描仪。上述的背景只是为了提供有关条形码的上下文信息的概述,并且未详尽无遗。通过以下详细描述的一个或多个非限定性的实施方式,可以更清晰地理解本发明的内容。

技术实现要素:
以下介绍本说明书的发明内容,以提供对本说明书的方案的基本了解。该发明内容不是本说明书的详尽描述。其目的既不是确定说明书的关键或重要元素,也不描绘本说明书的特定实施方式的范围或其他权利要求的范围。其唯一的目的是以简单的形式介绍本说明书的一些概念,作为以后提出的更详细的描述的前奏。根据一个或多个实施方式和相应的公开内容,通过对能够提供良好视觉质量的图像的二维条形码来描述本申请的各种非限制性方案,其中,人类有意义的图片与对机器有意义的二维条形码集成在一起。由于图像嵌入在二维条形码中,因此,对机器而言,即使图片会带来失真,却能够保留对二维条形码中被编码的信息的稳定可靠的解码能力。本申请描述了各种便于在二维条形码中嵌入图像的系统、方法和装置,根据这些系统、方法和装置,即使有图片带来失真,仍然可以在特定的环境中检测二维条形码和从二维条形码中解码信息。本文的一些实施方式描述了将图片嵌入(或编码)到二维条形码中。具体而言,描述了便于将图像嵌入二维条形码的系统。换而言之,该系统可便于水印出具有图像的二维条形码。该系统包括用于存储计算机可执行指令的存储器,执行计算机可执行指令的处理器。执行计算机可执行指令的操作至少包括:对二维条形码中的信息编码;通过采用至少两个平铺图案的水印技术把灰度图像嵌入到二维条形码中;以及将定位图形(Findingpattern)和静止区(Quitezone)添加到嵌入图像的二维条形码中。本文中还描述了相应的方法和计算机可读设备。在本文的另一个方案或实施方式中描述了检测嵌入图像的二维条形码。该实施方式描述了一种便于检测嵌入图像的二维条形码的方法。该方法包括:具有处理器的系统基于包括可视信息的二维条形码的图像生成二值图像;定位二值图像中的定位图形;基于定位图形执行二值图像的二维映射变换。该实施方式还描述了相应的通讯系统和计算机可读装置。本文中进一步的方案或实施方式描述了对二维条形码内的信息进行的解码。本文描述了一种计算机可读存储装置,包括使得具有处理器的系统执行操作的计算机可执行指令。这些操作利于对二维条形码中编码的信息进行解码。这些操作包括从二维条形码中分离出水印的比特流;以及用里德-所罗门检测算法解码二维条形码表示的内容。该实施方式还描述了相应的系统和方法。下面的描述和附图阐述了本说明书的某些方案。虽然这些方案是指示性的,但只是该说明书的各种实施方式可以采用的各种方法的一小部分。当结合附图描述下述实施方式,本说明书的其他方案将变得清楚。附图说明以下通过结合附图描述多个方案和实施方式,其中相同的附图标记指代相同的部件:图1是根据本申请的实施方式的、与包括图像的不同类型二维条形码进行比较的示例性且非限定性的图示;图2是根据本申请的实施方式的、对二维条形码中的图像进行编码的系统的示例性且非限定性的示意图;图3是根据本申请的实施方式的、将图像嵌入二维条形码的平铺图案示例的示例性且非限定性的示意图;图4是根据本申请的实施方式的、将图像嵌入二维条形码的水印模块的示例性且非限定性的示意图;图5和6是根据本申请的实施方式的、将图像嵌入二维条形码的对比模块的示例性且非限定性的示意图;图7是根据本申请的实施方式的、对嵌入图像的二维条形码着色的着色模块的示例性且非限定性的示意图;图8是根据本申请的实施方式的、对所嵌入二维条形码中的图像着色的着色模块的示例性且非限定性的示意图;图9是根据本申请的实施方式的、将图像嵌入二维条形码的方法的示例性且非限定性的流程示意图;图10是根据本申请的实施方式的、利用至少两个平铺图案将图像嵌入二维条形码的方法的示例性且非限定性的流程示意图;图11是根据本申请的实施方式的、对嵌入图像的二维条形码着色的方法的示例性且非限定性的流程示意图;图12是根据本申请的实施方式的、检测嵌入了图像的二维条形码的系统的示例性且非限定性的示意图;图13是根据本申请的实施方式的、将图像转换为二值图像的二进制模块的示例性且非限定性的示意图;图14是根据本申请的实施方式的、定位二值图像中定位图形(finderpattern)的定位模块的示例性且非限定性的示意图;图15是根据本申请的实施方式的、检测签入了图像的二维条形码的方法的示例性且非限定性的流程示意图;图16是根据本申请的实施方式的、减少图像中噪声和填料(spackling)以检测该图像中的二维条形码的方法的示例性且非限定性的流程示意图;图17是根据本申请的实施方式的、定位图像中定位图形的方法的示例性且非限定性的流程示意图;图18是根据本申请的实施方式的、对二维条形码中编译的消息进行解码的系统的示例性且非限定性的示意图;图19是根据本申请的实施方式的、对二维条形码中的消息进行解码的解码模块的示例性且非限定性的示意图;图20是根据本申请的实施方式的、对二维条形码中编译的消息进行解码的方法的示例性且非限定性的流程示意图;图21和22是根据本申请的实施方式的、从二维条形码中分离图像的方法的示例性且非限定性的流程示意图;图23是执行本文描述的实施方式和方案的移动装置的示例性且非限定性的流程示意图;图24是执行本文描述的实施方式和方案的系统架构的可操作的计算机的示例性且非限定性的流程示意图。具体实施方式下面参照附图对本申请内容的各个方面或特征进行说明,全文相似的附图标记用来指代相似的元件。在本说明书中,描述许多具体的细节,以提供对本申请的透彻理解。然而,应该理解,没有这些具体细节也可以实施的本申请内容的某些方面或用其他方法等。在其他实施方式中,公知的结构和设备以框图的形式显示,以方便的各种实施例的说明和图例。本申请一般涉及到有视觉吸引力的二维条形码的设计和使用。本文所描述的系统和方法通过将一个图像嵌入二维条形码中以提高美观程度。在本申请中,术语“图像”,“视觉信息”,“标识”或类似的术语可以互换使用。此外,术语“并入”,“合并”,“嵌入”,“植入”或其他类似的术语一般是交替使用来表示嵌入二维条形码(类似于水印)的嵌入。二维条形码往往是黑色和白色方块。虽然这些块对机器是有意义的,但这些块对人类几乎没有视觉上的吸引力和意义,这可能减少二维条形码内实施的广告的有效性。在二维条形码内嵌入一个公司的标识、产品或品牌会让其变得对人类更加有意义。此外,因为在对条形码拍照时,人眼会自然地盯着标志,因此嵌入的公司标志可以增加二维条形码的广告效益。一些企业已经认识到嵌入图像到二维条形码的好处,因此已经开发出了几种简单的方法,以便在二维条形码内显示图像。这些简单方法一般包括用图像(例如,标志或其他视觉信息)代替(或损坏(corrupting))二维条形码的部分区域。条形码的解码应用程序通常配置有内置的纠错能力。只要损坏的区域足够小,在条形码的解码应用程序使用的纠错算法的容忍范围之内,条形码的纠错能力使得具有一小部分被破坏的条形码仍可以被成功解码。换句话说,图像的尺寸必须占据整个条形码区域的相对小部分,否则,由于由图像引入大量的失真,条形码不能被成功地解码。由于条形码的解码应用程序固有的纠错算法,通过取代或损坏应用在条码的图像的像素(一般需要是相当小的),会减少图像的美学外观。因此,修改后的具有小的(甚至是不可读)图像的条形码会使条形码失去对人的吸引力。例如,当图像一般是代表高品质的品牌的可识别的标志,当标志包含在条形码内时,该标志可能会降低到不可接受的水平。另外,修改后的条形码的图像会减少成功解码的几率。事实上,图像所带来的噪声,失真或污染可以使成功解码的几率低的令人难以接受。为达到足够的解码精度,嵌入的标志的尺寸可能需要进一步降低。图1示出将图像嵌入到二维条形码的不同的方法。附图标号102示出了一种在QR码嵌入图像的方法,其中BBC(英国广播公司)标识嵌入在一个QR码中。附图标号104中示出在QR码嵌入的图像的另一种方法,这是通过LogoQ技术嵌入图像的一个示例。根据本文所描述的方案和实施例把一个图形嵌入二维条形码用附图标号106示出。DuncanRobertson公司开发了一种在QR码中嵌入公司标志的方法(102示出将英国广播公司的标志以低分辨率嵌入QR码中,使用类似的方法将低解析度的标识或卡通的嵌入其他条形码)。在BBC的示例中,为推广BBC的电视节目,带有BBC标志的QR条码被印在海报、杂志和报纸去吸引读者的注意力来扫描代码,并获得各种电视节目的最新信息。因此,当用户扫描带有BBC标志的QR条码时,用户会被重定向到一个特定电视节目的网站。这种方法利用了QR条码的高纠错率。使用QR条形码中的里德-所罗门(Reed-Solomon)纠错编码器,可以检测编码后的消息,如果数据被错误地接收,其中的错误能够被纠正。QR条码的误差校正比最高为30%。换句话说,如果在条形码中的30%的数据已损坏,数据仍然是可恢复的。设计高纠错率的QR条码,旨在提高抗噪声能力,使条码在极端环境下部分划伤或破坏仍可以保持可读的。QR条形码中的BBC标志对人类是有意义的,但对机器没有意义。机器解码条码时把BBC标志当做是噪声或不想要的信息。利用纠错属性,可以检测和恢复信息。由于噪声和无用的BBC标志的信息被有意地添加到条形码中,抗噪声能力将大大降低,从而可能会导致在解码期间发生故障。此外,条形码中该标志的面积被限制到条形码总面积的30%以内,否则数据不能被解码。另一种将公司徽标嵌入QR码(LogoQ)的方法是由AT通讯有限公司开发(例如附图标号104所示的条形码)。LogoQ是直接将彩色的标识或卡通人物嵌入QR条形码。与102示例中的BBC标志相比,视觉效果有所提升。通过仔细选择标识和背景颜色,并保持颜色不同(例如,在附图标号104的示例中的黄色图像和蓝色的条形码),这样生成的QR码可以被大多数正常QR条形码检测器解码。与102示例中的BBC标志不同,具有标志的LogoQ不会覆盖QR码。相反,LogoQ更像是用图像水印QR条码。大多数的数据块仍然可以从条形码识别出来,但一些细节,如边缘和标志边缘就模糊了,可能会在解码过程中成为错误。元件106是根据本文所描述的实施方式的、具有嵌入的图片的二维条形码的一个示例。这里描述的富有视觉吸引力的二维条形码元件106与102中的BBC标志和104中的LogoQ码相比,减少或消除了解码过程中错误出现的可能性。这里所描述的二维条形码106通常利用扩频水印技术,以便在条形码内嵌入图像。条形码内的数据用一些二维的展布(spreading)/平铺图案来表示。与102中的BBC标志和104中的LogoQ码相比,这里所描述的二维条形码106条形码提高了图像的视觉效果和可见性,同时保持二维条形码的优点,比如耐用性和可靠性。元件106中的图像是一个标志的图标。然而,图像也可以是人脸的图像(例如,照片)。根据一个实施方式,人脸图像可以嵌入在条形码中(例如,元件106所示的条形码中,而不是Logo标识)。在条形码中嵌入人脸图像可以允许一定程度上认证或验证条形码用户的身份。例如,图像可以阻止其他人简单地拍摄条形码的照片和使用条形码内嵌的消息。应用的示例包括条码表示的电子会员卡、基于条形码的电子支付系统、基于条形码的安全系统(如医疗记录)等等。图1a中给出了嵌入图像是人脸的一个示例。原来的面部照片108可以被嵌入在条形码中。110展示了嵌入在条形码中没有做面部增强的预处理的脸,112展示了在条形码嵌入做过面部增强预处理的脸。有时,110中的部分被直接嵌入的图片质量非常低,以至于可能会很难识别一个人的脸和身份。这种情况的出现是由于低对比度、背景相似的颜色或其他原因。112展示了清晰的图像,更容易识别人的脸和身份。面部图像(或照片)可以在被嵌入在条形码内之前进行预先处理,来增加对比度和整体的视觉质量。112所表示的部分选择性地启用了面部的对比度,从而提高了嵌入在条形码中的人脸的视觉质量。预处理的主要想法是,通过人脸典型的色彩确定照片中的人脸区域。在典型的人脸照片中,人脸区域处于灰度直方图的中间。此外,人脸区域通常接近黄色,这表示在RGB域中G和B分量比R分量要大。因此,可以在图像中搜索满足颜色G和B比R分量强的像素区域。通过重新缩放亮度,这些区域的原始图像的对比度得到提高。换言之,扩大更高的亮度和缩减较低的亮度。下面给出了面部增强方法的一个示例。然而,需要理解的是,根据面部的着色和其他因素,还可以使用其它方法。脸部的彩色图像可以转换成灰阶(灰度)图像。可以生成图像内的灰度直方图。可以对灰度值分布进行直方图均衡化处理。搜索范围可以被减少到中间亮度灰度值(例如,对应于所设置的最大灰度级的20%至80%)。然后,进行搜索寻找满足颜色条件近似人脸黄色的像素点(例如,PG>PR*1.1&PB>PR*1.1,min(PG,PB)>1.1*PR,这里PR,PG,PB处于[0,255]的范围,代表红绿蓝三种像素成分的值)。原始图像中那些满足颜色条件的像素点的亮度可以增大,从而可以提高对比度。换句话说,使对比度更高且亮度更低。例如,如果I>=100,则I’=(ceil(min(I*1.3),255),,否则,I’=floor(I*0.7),这里I表示的直方图均衡化后的亮度等级,I’表示增强后的亮度水平。再次参见图1,本文所述的二维条形码106的设计和使用可被分成三个不同的区域。“编码”一般指的设计和生成的二维条形码106。“检测”一般是指在一个实际的环境中获取二维条形码106的图像。“解码”一般是指从二维条形码的图像中获得信息。“编码”,“检测”和“解码”中的每一个可以采用各种模块、应用程序、服务、系统等。如本文所用,术语“应用程序”,“服务”,“系统”,“模块”等旨在指计算机相关的实体、硬件、软件(例如,执行中),和/或固件。例如,一个模块可以是处理器、处理器上运行的进程、对象、可执行程序、程序、存储装置和/或计算机。以说明的方式,在服务器上运行的应用程序和服务器都可以是模块。一个或多个模块可以驻留在进程中,模块可以被定位在一台计算机和/或分布在两台或多台计算机之间。此外,这些模块能够执行各种计算机可读介质,其上存储有各种数据结构。这些模块可以通过本地和/或远程进程,例如根据信号具有一个或多个数据包(例如,从一个模块的数据与本地系统,分布式系统中的另一个模块,和/或通过网络进行交互通信,例如,经由信号的因特网、局域网、广域网等与其他系统)。作为另一个示例,模块可以是电气或电子电路操作的、机械部件提供的、具有特定功能的装置;电气或电子电路可以由一个或多个处理器执行的软件应用程序或固件应用程序操作;所述一个或更多的处理器可以是内部或外部的装置,并且可以执行的软件或固件应用程序的至少一部分。作为另一个示例,模块可以是通过无机械部件的电子元器件提供特定功能的装置;电子元器件可以包括其中的一个或多个处理器来执行软件和/或固件所授予的电子元件的至少部分的功能。在一个方案中,模块可以通过虚拟机模拟的电子元件,例如,在云计算系统里。此外,应用程序、服务、系统、模块等等可以被实现为方法、装置或制造的产品,通过使用标准编程和/或工程技术来产生软件、固件、硬件或它们的任意组合来控制计算机来实现上述的主题。用在这里的术语“制造的产品”意在包含从任何计算机可读设备、计算机可读载体或计算机可读的移动设备访问的计算机程序。例如,计算机可读介质可以包括但不限于,磁存储设备,例如,硬盘、软盘、磁条、光盘(例如,光盘(CD)、数字视频光盘(DVD),蓝光光盘TM(BD))智能卡;闪存设备(例如,卡、棒、键驱动器)和/或模拟存储设备和/或任何一个虚拟设备关于上述的计算机可读装置。编码编码的系统和方法一般可以由计算设备(例如,图24中所示)实现。这些系统和方法可以采用编程环境来便于编码过程。一般而言,任何便于编码的编程语言和环境中都可以采用。图2示出了根据本申请一个方案或实施方式的、对二维条形码中的图像进行编码(或调制)的系统200的示意图。系统200包括可以存储指令等的存储器202。系统200还包括处理器204,处理器204用于执行各种指令。存储器202和处理器204可以是单个计算设备或分布在整个网络上的计算设备的内存和处理器。系统200包括各种用于在二维条形码中嵌入图像的模块。系统200对二维条形码内的信息进行编码。当二维条形码内的消息被编码以后,系统200可以通过采用至少两个平铺图案的水印技术把灰度图像嵌入到二维条形码中。条形码内嵌入该图像时,系统200会将定位图形和静止区域添加入嵌入图像的二维条形码中。例如,系统200可以包括条形码模块206、水印模块208、图案模块210,处理器204执行或有利于条形码模块206、水印模块208、图案模块210的执行。条形码模块208可以对二维条形码内的消息212进行编码。水印模块208可以通过采用至少两个平铺图案的水印技术将灰度图像嵌入到二维条形码中。图案模块210可以将定位图形和静止区域216添加入嵌入图像的二维条形码中。条形码模块208根据编码算法对二维条形码内的消息212进行编码。消息212一般是可以由创建的二维条形码的用户输入的文本消息。文本消息可以包括字符,字符包括字母、数字、标点符号、符号等等。根据二维条形码,文本消息的字符会被限制在一定范围。在一个示例中,字符数可以被限制为小于100。在另一个示例中,字符数可以被限制为小于75。在进一步的示例中,字符数可以被限制为小于50。消息212可以是任何类型的文本消息。例如,消息212可以是由嵌入二维条形码的图像所表示的公司的相关的网站、产品、字符等。消息212也可以是向扫描条形码的人提供奖赏(例如,打折)的文本消息。消息212也可以是由嵌入二维条形码图像表示的有关该公司的产品、字符的消息等。当二维条形码还没有被模块206编码时,消息212不能被发送。条形码模块206一般根据编码算法214来编码消息212。编码算法214可以捕获文本消息,检测该文本消息的长度是否小于字符限制,如果长度小于字符限制,该文本消息可以被转换为一个二进制数据格式。二进制文本消息可以被包含在报头内。文本消息的字符可以被翻译成字符编码库定义的另一种格式。不同的语言有自己的编码方案/标准。例如,对于英文字符,常用的标准是ASCII(美国信息交换标准码)。对于汉字,常用的标准是Big-5。其他语言也有自己的标准。文本消息的字符可以翻译成任何字符编码库定义的格式。利用这些库,文本消息内的单个字符可以被编码成具有特定位数(例如,8位)的二进制数据码字。文本消息被编码之后,报头和结束符被放置编码的消息的前端和结束处。报头可以指示解码器消息中的字符数。结束符来确保该解码器将无法读取任何超过编码比特长度的内容。在一个示例中,所允许的最大文本消息的字符数量是34。将其翻译为二进制形式,标题占据最多6个二进制位。终止子是4位二进制码,用于指示编码后的消息的结尾(例如,“000”)。可以预见,在二维条形码传输过程中可能会(例如,通过环境或信道)引入错误,这将损坏数据并导致解码该消息失败。编码算法214可以采用纠错码以保护数据。任何可以检测并纠正错误的纠错码都可以采用。里德-所罗门码就是一个示例。纠错码可以检测和纠正多个符号的异常,包括擦除异常和错误异常。擦除一般指的是在已知位置的错误符号。错误通常是指在未知位置的错误符号。由这里所描述的二维条形码(例如,图1所示的元件106处的二维条形码)具有嵌入在二维条形码内的图像,当在检测阶段中对二维条形码拍照时,会引入除显示相机的信道噪声外的额外干扰。被强干扰破坏的已知位置的符号很可能是错误的,并可能被认为是擦除,因此擦除和错误都可能发生。能够被纠正的错误和擦除的数量(取决于使用的错误校正符号的个数)由下式给出:2t+e≤n-k,其中,t为错误个数,e是擦除个数,n是总的符号的数量,k是数据符号的数量,(n-k)是误差校正符号的数量。可纠正的擦除的数量是可以被纠正的错误的数量的两倍。里德-所罗门码的最大长度是:N=2m–1,其中m是每个符号的比特数。例如,如果m=8,最大长度N=28-1=255。由于二维条形码不放置全部255个符号,因此在纠正编码前,可以将零填充到二维条形码中使其总长度为255。例如,对于一个8位的里德-所罗门码,具有120个数据符号和20个纠错符号,以校正10个错误,其总长小于255。因此,可以将115个零填充到数据符号,从而编码235个符号。在数据被编码后,除去填充的零并将其放置在终止子之后。当数据被解码时,以同样的方式填充除去的零。二维条形码的消息212被编码后,水印模块208可以通过采用至少两个平铺图案的水印技术将灰度图像嵌入到二维条形码中。灰度图像是通过在编码之前将图像的彩色去掉而得到的。该图像可以是任何类型的图像,例如Logo标志、图像、卡通人物或任何其他类型的图像。如果图像具有复杂的形状或有许多边的形状时,图像可能会妨碍最终二维条形码中的消息212的解码过程。在这种情况下,可以降低图像的分辨率,以便最终能够成功解码。该图像可以是任何格式的,包括“BMP”、“gif”、“jpeg”、“tiff”或任何其他形式。然而,在一个实施例中,“bmp”格式是优选的。平铺图案通常是任何预定义的图案,可以用来表示图像刻度中的数据“0”和数据“1”。例如图3所示的平铺图案302(表示数据“0”)、304(表示数据“1”)。在嵌入过程中使用平铺图案来调整图像的灰度级,不会使灰度值被使用不同阈值的照相机改变。使用平铺图案,在不使用阈值的情况下,通过比较图像和平铺图案,解码器可确定数据为“0”还是“1”。因此,可靠性增加,并且仅需要较少的处理工作。平铺图案不限于图案302和304。平铺图案可以是任何模式的伪随机定位的子块。此外,虽然示出了两个平铺图案,但需要理解的是,还可以利用两个以上的平铺图案。在一个实施例中,为了把图像嵌入二维条形码,水印模块208可以将图像调整为116像素×116像素。水印模块208可以通过移除图像的色彩使其成灰度图像。水印模块208可以用如下方法把灰度图像嵌入二维条形码。可以将灰度图像(尺寸为116像素×116像素)分割成表示单个数据的块。块的尺寸可以是4像素×4像素,并具有表示数据“0”(例如,302)或表示数据“1”(例如,304)的平铺图案。可用的块的总数为841。最后的6块被保留作报头。图4中示出水印模块208。水印模块208可以包括提取模块402、比较模块406、值模块408和报头模块410。提取模块402可提取块404,块404表示灰度图像中的数据位。比较模块406可确定该块是数据“0”还是数据“1”,并且可以根据该块是数据“0”或数据“1”来比较盒404内的像素和302或304图案中对应的像素。图5和图6示出了比较模块406对块404中的像素和图案302中的像素进行比较所使用的规则。值模块408可以依据比较模块406的比较结果来设置在块内的像素的值。报头模块410保留用于与该消息相关的报头数据的灰度图像的一部分(例如,六个框404)。如图4所示,水印模块208能够把灰度图像嵌入二维条形码。正如图5和6中所示,比较模块406使用四个主要的规则对每个块进行逐像素的比较,来确定相应像素在最终嵌入图片的二维条形码中的像素值。如果编码后数据位为0,则把提取出的块和平铺图案302比较。如果编码后数据位为1,则把提取出的块和平铺图案304比较,具体规则如下:规则1:两个块的像素都是高亮度(例如,255),则最终的条形码的相同位置的像素为高亮度(例如,255)。规则2:提取出的块的像素为高亮度(例如,255),平铺图案的像素为低亮度(例如,0),则在最终条形码上的相同位置的像素为第二高亮度(例如,170)。规则3:提取出的块的像素为低亮度(例如,0),平铺图案的像素为高亮度(例如,255),则在最终条形码上的相同位置的像素为第二低亮度(例如,85)。规则4:两个块里的像素都为低亮度(例如,0),则在最终条形码上的相同位置的像素为低亮度(例如,0)。重复以上比较过程,直到所有的图像块已嵌入条形码内。如果有任何剩余的块,该过程将从第一位的数据重新启动。最后预留的块(例如,6个)嵌入用于冗余的报头的相应数量的比特数(例如,6比特)。图像嵌入二维条形码后,模块210将定位图形和静止区216添加到嵌有图像的二维条形码中。模块216的定位图形是由实线和虚线(点线)组成的方框。虚线可以作为分区模块,用于定位条形码中的块的坐标和判断条形码的物理尺寸。然而,定位图形可以是利于定位条形码位置和在条形码检测过程中测量其尺寸的任何图案。例如,定位图形可以是任何类型的定位图形,只要显示出定位图形的四个角即可。定位图形也可以用来尽量减少条形码的错误检测(或故障检测)。模块216的定位图形的一个示例与传统的DataMatrix定位图形不同,在定位图形右上角的虚线上添加了一个额外的块218。修正后的右上角减少了当条形码图像歪斜时不当变换的风险。DataMatrix码标准要求的垂直和水平轴上的块的个数(或模块)为偶数。在本文所描述的定位图形,在垂直和水平轴的块(或模块)个数为奇数。因此,右上角就变成了黑块(额外的块218),而不是白色的块。静止区是定位图形周围的白色空间。在解码之前,定位图形可以有助于检测二维条形码和将其变换到正确的位置。静止区可以使条形码与外部环境隔离,以避免条形码检测期间的干扰。例如,定位图形边框宽度可以是4像素,静止区的宽度可以是8位像素。现在参看图7,示出了根据本申请的实施方式的、对嵌入了图像的二维条形码着色的示例性的非限制性的系统700的示意图。系统700包括可以存储指令、模块等的存储器702。系统700还包括一个处理器704,处理器704执行指令、模块等,或利于执行与指令、模块等相关的各种操作。存储器702和处理器704可以是单个的计算设备或分布在整个网络上的计算设备的内存和处理器。系统700包括各种利于将嵌入了图像的二维条形码着色的模块。系统700可以对二维条形码中的消息进行编码。二维条形码中的消息被编码后,系统700可以通过采用两个平铺图案的水印技术将灰度图像嵌入到二维条形码中。图像被嵌入条形码后,则可以对其着色。当嵌入二维条形码的图像被着色之后,系统700将定位图形和静止区添加到嵌入图像的二维条形码中。例如,系统700可以包括条形码模块206、水印模块208和与之前图2所描述的图案模块有相同功能的图案模块210。系统700还包括可以把嵌入二维条形码的图片着色的着色模块706。在水印模块嵌入之后,以及加入定位图形和静止区(元件216)之前,模块706可以把嵌入二维条形码的图片着色。在图8中更详细地展示了着色模块706。着色模块706包含一个比较模块806,该比较模块比较条码802的像素和灰度图像804的像素以及着色图像808的像素,其中着色模块808基于比较结果对每个像素进行着色。比较模块806按照以下规则进行逐像素的比较:规则5:如果两个像素都为低亮度(例如,0),则设置彩色条形码的像素是低亮度(例如,0)。规则6:如果灰度图像的像素为低亮度(例如,0),而提取的条形码中的像素值不是0,则把彩色条形码的像素值设为次低亮度(例如,92)。规则7:否则,算出两个像素之间的倍数,除以该倍数得到最终条形码像素。倍数=灰度图的像素值/灰度图像二维条形码的像素值(这个公式只是一个算倍数的示例,其他的公式也可以用)。最终条形码的像素值=彩色图片的像素值/倍数。图9-11示出了设计嵌入图片的二维条形码的方法900-1100。为了简化说明,方法(或算法)被描述和描述为一系列行为。可以理解和明白的是,各种实施方式并不限于图示的行为和/或动作的顺序。例如,行为可以以各种顺序发生和/或同时发生,或者伴随本文未述的其他行为。另外,实现该方法并非需要所有所展示的动作。另外,该方法也可以通过状态图或事件表示为一系列相关的状态。此外,以下描述的方法能够被存储在制品(例如,计算机可读存储介质、计算机可读的移动设备等)中,以便于将其运输和传送至计算机中。如本文所用的术语“制品”意在包括从任何计算机可读设备、载体或介质(包括非临时性的计算机可读存储介质)存取的计算机程序。以下涉及的任何数据存储可以参照存储在云计算环境中的数据存储。此外,下面描述的行为和/或全部或部分步骤可发生在云计算环境中分布的服务器上。图9是是根据本申请的实施方式的、将图像嵌入二维条形码的方法的示例性且非限定性的流程示意图。在步骤902中,可以根据编码算法对二维条形码中的消息编码。消息通常是由创建二维条形码的用户输入的任何类型的文本消息。根据二维条形码的相关限制,文本消息可以被限制为一定的数量的字符。编码算法可以捕获文本消息,检测该文本消息的长度是否小于字符长度的限制,如果长度小于字符的限制,该文本消息可以被转换为一个二进制数据格式。二进制文本消息可以被包含在一个报头中。利用字符编码库,文本消息内的单个字符可以被编码成特定长度(例如,8位)的二进制数据码字。文本消息进行编码后,报头和结束符被放置在编码的消息前端和结束端。报头可以指示解码器消息中的字符数。结束符来确保该解码器将无法读取任何超过编码比特长度的内容。在一个示例中,允许最大文本消息的字符数量是34。将其翻译为二进制形式,标题最多占据6个二进制位。终止子是4位二进制码,用于指示编码后的消息的结尾(例如,“000”)。可以预见,在二维条形码传输过程中可能(例如,通过环境或信道)会引入错误,这将损坏数据并导致解码该消息失败,编码算法可以采用纠错码以保护数据。任何可以检测并纠正错误的纠错码都可以采用。里德-所罗门纠错码就是一个示例。里德-所罗门纠错码可以检测和纠正多个符号的异常,包括擦除和错误。擦除一般指的是已知的位置的错误符号。错误通常是指在未知位置的错误符号。纠正一个擦除需要一个校验符号,而纠正一个错误则需要两个校验符号。由于这里所描述的二维条形码(例如,图1所示的元件106处的二维条形码)具有嵌入在二维条形码内的图像,当在检测阶段中对二维条形码拍照时,会引入噪声,因此擦出和错误都和能发生。能够被纠正的错误和擦除的数量(取决于使用的错误校正符号的个数)由下式给出:2t+e≤n-k,其中,t为错误个数,e是擦除个数,n是总的符号的数量,k是数据符号的数量,(n-k)是误差校正符号的数量。可纠正的擦除的数量是可以被纠正的错误的数量的两倍。里德-所罗门码的最大长度是:N=2m-1,其中m是每个符号的比特数。例如,如果m=8,最大长度N=28-1=255。由于二维条形码不放置全部255个符号,因此在纠正编码前,可以将零填充到二维条形码中使其总长度为255。例如,对于一个8位的Reed-Solomon码,具有120个数据符号和20个纠错符号,以校正10个错误,其总长小于255。因此,可以将115个零填充到数据符号,从而编码235个符号。在数据被编码后,除去填充的零并将其放置在终止子之后。当数据被解码时,以同样的方式填充除去的零。在步骤904中,灰度图像可以通过水印技术被嵌入到二维条形码。水印技术可以利用两个平铺图案。灰度图像可以是在颜色被嵌入条形码之前去掉颜色的图像。该图像可以是任何类型的图像,例如标志、图像、卡通人物或任何其他类型的图像。图像可以是适合二维条形码尺寸的任何尺寸。如果图像尺寸大于二维条形码的尺寸,则图像可以被调整变小以适合于二维条形码。然而,根据一个实施方式,图像的尺寸必须大于50像素×50像素。在另一个实施方式中,图像的尺寸必须大于100像素×100像素。根据另一个实施方式,图像的尺寸必须大于115像素×115像素。图像的尺寸可以是填补至少50%的二维条形码的空间。在另一个实施方式中,图像的尺寸可以填补至少70%的二维条形码。在另一实施方式中,图像的尺寸可以填补至少85%的二维条形码。如果图像具有复杂的形状或有许多边的形状时,图像可能会妨碍最终二维条形码中的消息的解码过程。在这种情况下,可以降低图像的分辨率,以便最终能够成功解码。该图像可以是任何格式,包括“BMP”、“gif”、“jpeg”、“tiff”或任何其他形式。然而,在一个实施例中,“bmp”格式是优选的。平铺图案通常是任何预定义的图案,可以用来表示图像刻度中的数据“0”和数据“1”。例如图3所示的平铺图案302(表示数据“0”)、304(表示数据“1”)。在嵌入过程中使用平铺图案调整图像的灰度级,不会使灰度值被使用不同阈值的照相机改变。使用平铺图案,在不使用阈值的情况下,通过比较图像和平铺图案,解码器可确定数据为“0”还是“1”。因此,可靠性增加,并且仅需要较少的处理工作。平铺图案不限于图案302和304。平铺图案可以是任何模式的伪随机定位的子块。此外,虽然示出了两个平铺图案,但需要理解的是,可以利用两个以上的平铺图案。在一个实施例中,为了把图像嵌入二维条形码,水印模块208可以将图像调整为116像素×116像素。水印模块208可以通过移除图像的色彩使其成灰度图像。水印模块208可以用如下方法把灰度图像嵌入二维条形码。可以将灰度图像(尺寸为116像素×116像素)可以分割成表示单个数据的块。块的尺寸可以是4像素×4像素,并具有表示数据“0”(例如,302)或表示数据“1”(例如,304)的平铺图案。可用的块的总数为841。最后的6块被保留作报头。在步骤906中,定位图形和静止区被添加到嵌有图像的二维条形码中。定位图形(图2的模块216示出了一个示例)是实线和虚线(点线)组成的盒子或框架。虚线可以作为定位图案(Timingpattern),用于定位条形码中的块的坐标和判断条形码的物理尺寸。然而,定位图形可以是利于定位条形码位置和在条形码检测过程中测量其尺寸的任何图案。定位图形也可以用来尽量减少错误检测的条形码(或故障检测)。图2中模块216是定位图形的示例,它与传统的DataMatrix定位图形不同,在定位图形右上角的虚线上添加了一个额外的块(图2的模块218)。修正后的右上角减少了当条形码图像歪斜时不当变换的风险。DataMatrix码标准要求垂直和水平轴上的块的个数(或模块)为偶数。在本文所描述的定位图形,在垂直和水平轴的块(或模块)的个数为奇数。因此,右上角就变成了黑块(额外的块218),而不是白色的块。静止区是定位图形周围的白色空间。在解码之前,定位图形可有助于检测二维条形码和将其变换到正确的位置。静止区可以使条形码与外部环境隔离,来避免条形码检测期间的干扰。例如,定位图形边框宽度可以是4像素,静止区的宽度可以是8像素。图10是根据本申请的实施方式的、利用至少两个平铺图案将图像嵌入二维条形码的方法的示例性且非限定性的流程示意图。在步骤1002中,提取出表示灰度图像中的数据位的块。在步骤004中,逐像素地比较块内的像素和平铺图案的像素。在步骤1006中,根据比较结果来设定块内的每一个像素的像素值。只要仍然存在块,步骤1002-1006所示的行为将一直重复。在步骤1108中,灰度图像的一部分可以保留作为报头。步骤1004和1006使用四个主要的规则对每个块进行逐像素的比较,来确定相应像素在最终嵌入有图片的二维条形码中的像素值。如果编码后数据位为0,则把提取出的块和平铺图案302比较。如果编码后数据位为1,则把提取出的块和平铺图案304比较,具体规则如下:规则1:两个块的像素都是高亮度(例如,255),则最终的条形码的相同位置的像素就是高亮度(例如,255)。规则2:提取出的块的像素是高亮度(例如,255),平铺图案的像素是低亮度(例如,0),则在最终条形码上的相同位置的像素是第二高亮度(例如,170)。规则3:提取出的块的像素是低亮度(例如,0),平铺图案的像素是高亮度(例如,255),则在最终条形码上的相同位置的像素是第二低亮度(例如,85)。规则4:两个块里的像素都是低亮度(例如,0),则在最终条形码上的相同位置的像素是低亮度(例如,0)。重复以上比较过程,直到所有的图像块已嵌入条形码内。如果有任何剩余的块,该过程将从第一位的数据重新启动。在元件1008处最后(例如,6)预留的块被嵌入用于冗余的报头的相应数量的比特数(例如,6比特)。图11是根据本申请的实施方式的、对嵌入图像的二维条形码着色的方法的示例性且非限定性的流程示意。在模块1102,条形码的像素和灰度图像的像素被比较。比较元件1102逐像素进行,比较按照以下规则进行:规则5:如果两个像素点都为低亮度(例如,0),然后设置彩色条形码的像素是低亮度(例如,0)。规则6:如果灰度图像的像素为低亮度(例如,0),而提取的条形码中的像素值不是0,把彩色条形码的像素值设为次低亮度(例如,92)。规则7:否则,算出两个像素之间的倍数,除以该倍数得到最终条形码像素值。倍数=灰度图的像素值/灰度图像二维条形码的像素值(这个公式只是一个算倍数的示例,其他的公式也可以用)。最终条形码的像素值=彩色图片的像素值/倍数。在步骤1104中,根据该比较结果,将颜色值添加到灰度图像中。例如,可基于计算出的最终条形码的像素值来添加颜色值。利用灰度等级和RGB值之间的关系来添加颜色值。灰度值=0.2989*R+0.5870*G+0.1140*B通过调节红色(R)、绿(G)和蓝色(B)的比例,可以将颜色添加到嵌入了图像的二维条形码中,而不改变它的灰度值。探测检测系统和方法一般都可以由移动计算设备(例如,平板计算设备或一个智能手机,如图23所示)实现。该系统和方法可以采用一个或多个应用程序(例如,移动应用程序)编程,以接收由移动计算设备的照相机拍摄的图像,以方便检测。图12是根据本申请的实施方式的、检测嵌入了图像的二维条形码的系统1200的示例性且非限定性的示意图。系统1200包括可以存储指令、元件等的存储器1202。系统1200还包括处理器1204,处理器1204执行指令、模块,或利于与指令、模块等相关的其他各种操作的实施。存储器1202和处理器1204可以是单个计算设备或分布在整个网络上的计算设备的内存和处理器。系统1200包括用于检测二维条形码的各种模块。检测一般指获取在一个实际的环境中嵌入了图像的二维条形码。当记录图像时,系统1200可以基于嵌入视觉信息的二维条形码的图像生成二值图像。系统1200可以定位二值图像中的定位图形,并基于定位图形进行二维条形码中二值图像的透视变换。例如,系统1200可以包括二值图像模块1206、图形定位模块1208和透视变换模块1210。二值图像模块1206可以基于图像(可为通过移动计算设备上的摄像机获取的图像)生成二值信号。图形定位模块1208可以找到二值图像内的定位器。定位图形是嵌入图像的二维条形码的一个关键因素,因为它有助于定位二维条形码的位置,并有利于测定两个二维条形码的尺寸。透视变换模块1210可以将二维条形码中的二值图像进行透视变换。二值图像模块1206生成的二值图像可以是一个灰度级的二值图像。因此,二值图像模块1206的首先将(通过与移动设备相关联的相机获得的)图像转化为灰度图。可通过局部阈值算法生成二值图像。如图13所示,二值图像模块1206可以包括局部阈值模块1302,其可以将图像1304转化为二值图像1306。在实施方式中,图像可以是400像素×400像素。局部阈值模块1302可以划分成8像素×8像素的块。先确定该块的对比度。如果对比度小于24,则块灰度的平均值是“块灰度总和/64”。如果对比度大于或等于24时,则该块的平均值设为“最小灰度值/2”。因此,当该块的对比度是低于某个值(在本例中为24)时,该块是一个完全的黑色区域或全白色区域。计算网格灰度的平均值。网格是5块×5块或40像素×40像素。可以检测网格的最小值,以消除多余的斑点(例如,液晶的电脑显示器的干扰所造成的)。如果网格的最小值大于或等于70,那么网格中的阈值是0。如果网格的最低值小于70时,则该网格的阈值由计算出的阈值取代,或者通过乘该阈值的2/3来减少该网格的阈值。计算出的网格阈值降低,则进一步去除定位图形附近的噪声。定位图形往往具有较低的灰度值。因此,此计算消除了多余的噪音但仍然保留了定位图形内的灰度。二值图像模块1206生成二值图像之后,定位模块1208可以在二值图像中定位定位图形。定位模块1208可以要求黑色像素平均分布在定位图形中。对每帧进行多次检测(例如,每帧5次),当每个检测帧的尺寸增加时,尝试定位定位图形。图14示出定位模块1208的一个示例。位置模块1208可以包括寻角模块1402、验证模块1404和扩展模块1406。寻角模块1402可以找到预期的定位图形的四个角落。这四个角可以分别是X轴处的第一块(垂直实线边框左侧的第一块),X轴(垂直虚线边界的左侧)的最后块,Y轴的第一块(水平虚线边界下)和在Y轴的最后块(在水平实线边框之上)。X坐标和Y坐标的转换的数量可表示为Tx和Ty。Tx和Ty分别表示从每一行和每一列中提取的块的数量。在示例中,Tx=Ty=29。可以利用水平虚线边界(例如,起始于x=3,y=3)来检测块宽度。定义1像素×1像素的滑动窗口,可以在X坐标每次移动一个像素。如果灰度级从高亮度(例如255)的灰度级变化到低亮度(例如0),或从低亮度(例如0)变换到到高亮度(例如255),记录当前块的停止位置和下一个数据块的起始位置。检测继续下去,直到达到最终的X坐标。检测后,可以确定X方向上的块,或收集每一列的坐标的开始位置和终止位置。可以检测存储在X方向上的块的列的数量。如果没有Tx列,则视为出现错误。然后该检测的开始点可以移动到下一行(如x=4时,y=3),继而重新开始块宽度检测,直到找到正确值的列(Tx)。可以用相同的方式在X轴计算得到每一行的高度。不同的是,垂直的虚线边框作为了检测对象。在检测之后,所获得的结果被记录在的Y方向上的块存储中。有时,因为不正确的透视转换会导致不能获得正确的数据。在这种情况下,可以视为解码失败。验证模块1404可以基于一个或多个约束条件来验证定位图形的四个角。在示例中,可进行基于两个约束条件的验证。第一个约束条件确保边框(L状)的边界存在于定位图形中。因此,预期的具有至少两个、黑白模块之间的、转换的定位图形的数量小于或等于1。第二个条件涉及虚线的边框,其中边框长度变化应该很小。例如,在第二条件下,彼此的边界的长度的差别必须是小于或等于9/10。验证模块1404可以确保基于预期的定位图形的四个角的位置没有检测到故障。当验证失败时,扩展模块可以扩大搜索区域,以利于当验证出错误时进行定位。如果边角通过验证,四个角可以被匹配到适当的顶点。最初,检测帧的初始尺寸可以设置为一个值(例如,80像素×80像素)。扩展模块1406可以增加搜索区域的检测范围(例如,15像素×15像素的尺寸)。当定位图形的四个顶点的坐标被检测之后,进行二维透视变换,以利用解码器校准所捕获的数据。透视变换模块1210基于定位图形对二维条形码中的二值图像进行透视转换。变换后,可减小二值图像的轴向不均匀性和网格的不均匀性。在定位了定位图形并进行变换之后,由于在传输过程中会通过环境或图像的信道引入噪声,从而损坏数据以及导致解码器解码失败,可以对嵌入可视图像的二维条形码应用错误点和空白点校正算法。错误点和空白点校正算法可以是能够检测出错误并纠正错误的任意的算法。错误点和空白点校正算法还可以检测和纠正擦除错误。在实施方式中,错误点和空白点校正算法可以将嵌入可视信息的二维条形码中图像边缘附近的点标记为空白点。例如,错误检测算法可以基于里德-所罗门错误和擦除校正码。错误点和空白点校正码可以被用来克服由嵌入图像的二维条形码所带来的噪声。可以纠正错误和空白的数量由下式给出:2t+e≤n-k,其中,t为错误数,e是空白数,n是总的符号的数量,k是数据符号的数量,(n-k)是错误校正符号的数量。能够修正的擦除的数量是能够修正的错误的数量的两倍。里德-所罗门码的最大长度是:N=2m-1,其中m是每个符号的比特数。例如,如果m=8,最大长度N=28-1=255。由于这两个二维条形码不能放置全部255个符号,因此在纠错编码前,可以将零填充到两个二维条形码中,以使总长度为255。例如,对于一个8位的里德-所罗门码,其具有120个数据符号,可以校正10个错误。校验20个错误所需符号小于255个。因此,可将115个零填充到数据符号,从而235个符号被编码。在数据被编码后,除去填充的零并将其放置在终止子之后。当数据被解码时,以同样的方式填充除去的零。为了进一步减少由于图像导致的错误和空白,二维条形码中编码的数据可以对应于至多视觉信息的一半面积。图15-17示出检测的嵌入图像的二维条形码的方法1500-1700。为了简化说明,描述和说明的方法(或算法)描述为一系列行为。可以理解和明白的是,各实施方式并不限于示出的行为或动作的顺序。例如,行为可以以各种顺序发生和/或同时发生(或者伴随本文述的其他行为)。此外,实现该方法并非需要所有所展示的动作。此外,该方法可替代地表示为一系列相关的状态图或事件图。此外,以下描述的方法能够被存储在制品(例如,计算机可读存储介质中、计算机可读的移动设备等)中,以便于将其运输和传送至计算机中。如本文所用的术语“制品”意在包括从任何计算机可读设备、载体或介质(包括非临时性的计算机可读存储介质)存取的计算机程序。以下涉及的任何数据存储是指存储在云计算环境中的数据。此外,下面描述的行为或全部和/或部分步骤可发生在云计算环境中的分布式服务器上。图15是根据本申请的实施方式的、检测签入了图像的二维条形码的方法1500的示例性且非限定性的流程示意图。步骤1502中,基于嵌入图像的二维条形码中的图像(例如由相机记录的图像)产生二值图像。该二值图像应该是一个灰度图像。因此,如果图像是彩色图像,在图像被转换为二值图像前,必须将其转化为灰度图。二值图像可以基于局部阈值算法而产生。步骤1504中,定位图形被定位于二值图像内。定位图形的位置可以包括定位图形的四个角的坐标。步骤1506中,根据定位图形进行二值图像的二维透视变换。执行二维透视变换,以利用解码器对捕获的数据进行校准。变换后可减小轴向不均匀性和网格的非均匀性。图16是根据本申请的实施方式的、减少图像中噪声和填料(spackling)以检测该图像中的二维条形码的方法1600的示例性且非限定性的流程示意图。步骤1602中,将图像划分成块,并纠正块的对比度。如果对比度小于24,则块灰度的平均值是块灰度总和/64。如果对比度大于或等于24时,则该块的平均值设为“块最小灰度值/2”。因此,当该块的对比度是低于某个值(在本例中为24)时,该块是一个完全的黑色区域或全白色区域。步骤1604中,块被分成网格(例如,5块×5块)。步骤1606中,从网格中去除噪点。可确定出网格的最小值以去除多余的噪点。降低网格的阈值,以进一步去除定位图形附近的噪声。步骤1608中,通过降低网格的阈值从网格中去除噪声。定位图形往往具有较低的灰度值。因此,去除多余噪声的计算仍然保留了定位图形内的灰度。图17是根据本申请的实施方式的、定位图像中定位图形的方法1700的示例性且非限定性的流程示意图。步骤1702中,定位可能的定位图形的四个角落。这四个角可以分别是X轴处的第一块(垂直实线边框的左侧的第一块),X轴(垂直虚线边界的左侧)的最后块,Y轴的第一块(水平虚线边界下)和在Y轴的最后块(水平实线边框之上)。步骤1704,根据约束条件验证边角位置。在实施方式中,验证可基于两个约束条件。第一个约束条件确保边框(L状)的边界存在于定位图形中。因此,预期的、具有至少两个、黑白模块之间的转换的、定位图形的数量小于或等于1。第二个条件涉及虚线的边框,在其中边框长度变化应该很小。例如,在第二条件下,彼此的边界的长度的差别必须是小于或等于9/10。基于定位图形的四个角的位置的验证能够确保没有检测到故障。可重复步骤1702的定位动作和步骤1704的验证动作,直至角落通过验证。对于每次重复,可以增加检测框的尺寸以尝试定位定位图形。在步骤1706中,将边角的位置匹配到适当的顶点(如果角落通过验证)。解码解码(或解调)的系统和方法一般都可以由移动计算设备(例如,平板电脑备或智能电话,如图23所示)实现。该系统和方法可以采用一个或多个应用程序(例如,移动应用程序)编程,以接收由移动计算设备检测和(根据上述检测算法)预加工的图像,以便于解码。图18是根据本申请的实施方式的、对二维条形码中编译的消息进行解码的系统1800的示例性且非限定性的示意图。系统1800包括存储器1802,其可以存储指令、模块等。系统1800还包括处理器1804,处理器1804执行指令、模块或便于执行与的指令、模块等相关的其他各种操作。存储器1802和处理器1804可以是单个计算设备或分布在网络上的计算设备的内存和处理器。系统1800包括用于二维条形码的数据解码过程的各种模块。系统1800可以从二维条形码中分离出水印的比特流。在分离之后,系统1800可以用里德-所罗门检测算法对二维条形码内的内容进行解码。例如,系统1800可以包括分离模块1806和解码模块1808,处理器1804执行或便于执行分离模块1806和解码模块1808的操作。分离模块1806可以从二维条形码中分离出水印的比特流。分离之后,解码模块1808可以利用里德索罗门检测算法对该二维条形码的内容进行数据解码。在分离模块1806从二维条形码的图像中分离出水印的比特流之前,图像必须被转换成比特流。在嵌入水印的二维条形码被转换成灰度图像的情况下,可以从二维条形码内的灰度图像中分离出水印的比特流。在二维条形码转换为二值图像的情况下,从二值图像获取块的坐标,并可利用块坐标从二维条形码中分离出对应于水印的比特流。检测沿X和Y轴在X方向和Y方向上的块的坐标。因为各种不同的摄像机之间存在不同摄像距离以及二维条形码的种类不同,当获得条形码的图像时,拍摄的图像可以产生不同的尺寸。因此,在获取比特流之前,需产生标准块的尺寸。因此,块的尺寸被调整到标准的尺寸(例如,8像素×8像素)。提取的每个块可以被划分成两个区域,例如“边界区”和“中心区域”。例如,边界区域是靠近调整了尺寸的块的边缘的外侧部分(例如,20像素),而中心区域是位于调整了尺寸的块的中心部分(例如,2个像素×2个像素)的区域。可确定边界区域内的最小灰度级值和最大灰度级值。可以使用最小灰度级值和最大灰度级值来确定该块是位于图像的边缘还是位于在图像的边缘以外。例如,该块最大灰度值和最小灰度级之间的差如果大于所述第二低亮度(例如,85),那么此块位于图像的边缘。但是,如果最大灰度值和最小灰度级之间的差小于所述第二低亮度(例如,85),该块可能不位于图像的边缘。当该块位于图像的边缘时,可以确定在边界区的中心点的亮度统计。例如中心点可以按照下式计算:中心点=中心点的最小灰度级-[(最小灰度级-最大灰度级)/2]。使用中心点的亮度统计图的中高密度区域来平均像素值。这些中心区域象素的平均值可用于获取二进制数据。如果边界区域的平均值大于中心区域的平均值,则获取的二进制数是“1”。如果边界地区平均值小于中心区域的平均值,则获取的二进制数据是“0”。上述的比较是不是唯一的方式。还可以使用任意数量的比较方法。例如,可以使用中间值的尺寸关系比较。当该块不是在图像的边缘时,可以比较边界区域和中心区域的平均值。如果边界区域的平均值大于中心区域的平均值,则获取的二进制数据是“1”。如果边界区域平均值小于中心区域的平均值,则获取的二进制数据是“0”。在从二维条形码中分离出水印后,解码模块1808可以对二维条形码内的消息进行解码。在图19中更详细展示出了解码模块1808。解码模块1808包括里德-索罗门解码模块1902和信息决定模块1904。里德-索罗门解码模块1902可以接收二值图像1306,并进行错误和空白校正(或者错误和空白纠正解码)。与现有技术相比,使用错误和空白纠正解码改进了二维条形码检测的准确性。由于在传输过程通过环境或获取图像的信道会引入噪声,从而损坏数据并导致解码器解码失败,因此可以对嵌入可视信息的二维条形码实施错误和空白纠正算法。错误和空白校正算法可以是能够检测出错误并纠正错误的任意的算法。错误和空白校正算法还可以检测和纠正空白。在一个实施方式中,错误和空白校正算法可以将嵌入的图像的边缘附近的块标记为空白。例如,错误检测算法可以基于里德-所罗门错误和空白校正码来克服在二维条形码图像嵌入所带来的噪声。能够校正的错误和空白的数量由下式给出:2t+e≤n-k,其中,t为错误数,e是空白数,n是总的符号的数量,k是数据符号的数量,(n-k)是错误校正符号的数量。可修正的空白的数量是可修正的错误的数量的两倍。里德-所罗门码的最大长度是:N=2m-1,其中m是每个符号的比特数。例如,如果m=8,最大长度N=28-1=255。由于这两个二维条形码不能放置全部255个符号,因此在纠错编码前,可以将零填充到两个二维条形码中,以使总长度为255。例如,对于一个8位的里德所罗门码,其具有120个数据符号,可以校正10个错误。校验20个错误所需的符号小于255个。因此,可以将115个零填充到数据符号,从而235个符号被编码。在数据被编码后,除去填充的零并将其放置在终止子之后。当数据被解码时,以同样的方式填充除去的零。在校正后,解码模块1904可解码信息1906。在被解码模块1904解码之后,该信息可以被显示。例如,该信息可以显示在移动计算设备的屏幕上。图20-22示出对嵌入图像的二维条形码进行解码的方法2000至2200。为了简化说明,描述和说明的方法(或算法)被描述为一系列行为。可以理解和明白的是,各实施方式并不限于示出的行为或动作的顺序。例如,行为可以以各种顺序或同时(或者伴随本文所未述的其他行为)发生。此外,实现该方法并非需要所有所展示的动作。此外,该方法也可以通过状态图或事件表示为一系列相关的状态。此外,以下描述的方法能够被存储在制品(例如,计算机可读存储介质中、计算机可读的移动设备等)中,以便于将其运输和传送至计算机中。如本文所用的术语“制品”意在包括从任何计算机可读设备、载体或介质(包括非临时性的计算机可读存储介质)存取的计算机程序。以下涉及的任何数据存储是指存储在云计算环境中的数据。此外,下面描述的行为或全部和/或部分步骤可发生在云计算环境中的分布式服务器上。图20是根据本申请的实施方式的、对二维条形码中编译的消息进行解码的方法的示例性且非限定性的流程示意图。步骤2002中,可以从二维条形码中分离出水印比特流。步骤2004中,对二维条形码表示的内容进行解码。解码得到的信息的通过元件2006显示。例如,信息可以与图像一起显示。例如,图像和消息可以一起显示在平板计算设备或移动电话的屏幕上。图21和22是根据本申请的实施方式的、从二维条形码中分离图像的方法2100和2200的示例性且非限定性的流程示意图。在图21中示出了灰度图像。步骤2102中,将嵌入图像的二维条形码的图像转换成灰度图像。步骤2104中,可以从二维条形码中分离出水印。图22为二值图像的说明。步骤2202中,可以将嵌入水印的二维条形码的转换为二值图像。步骤2204中,可以从二值图像获取块的坐标(例如,使用位置图像探测的虚线边界的X轴方向和Y轴方向上的每个框的开始出的坐标)。步骤2206中,利用框坐标从二维条形码中分离出于水印对应的比特流。该块的坐标对应于位置图像探测的虚线边界中的块的坐标。示例性的计算设备图23、24提供用于存储和执行上述系统和方法的示例。例如,图23示出了能够检测本文所描述的二维条形码并进行解码的移动设备2300。图24示出了可以创建和显示本文所描述的二维条形码的计算设备2400。图23中示出了执行本文描述的实施方式和方案的移动装置2300的示例性且非限定性的流程示意图。虽然本文中只展示出移动手机2300,但应该理解的是,其他设备也可以是移动设备,移动手机2300仅仅用于说明本文所描述提供创新的方案和实施方式。一般情况下,移动手机2300指的是一个智能手机。然而,移动手机2300还可以是具有类似功能的平板计算设备。下面的讨论旨在提供对适合的环境2300(其中可实施各种方案和实施方式)的简短的、一般性的描述。虽然此说明仅描述了计算机可读存储介质上和计算机可执行指令,但本领域技术人员可以认识到,通过与其它程序模块和/或硬件和软件的组合,此方法也有其他创新的应用。一般来说,移动计算应用程序(例如程序模块)可以包括执行特定的任务或实现特定抽象数据类型的线程、程序、模块、数据结构等。此外,本领域技术人员将理解,这里描述的方法可以应用于其他的系统配置,包括单处理器或多处理器系统、小型机、大型计算机以及个人计算机、手持计算设备、基于微处理器的或可编程的消费电子产品等,其中每一个都可以联接到一个或多个相关联的设备。计算设备通常可以包括多种计算机可读介质或设备接口。计算机可读介质是可以由计算机访问的任何可用的介质,并包括易失性和非易失性介质、可移动和不可移动介质。通过非限定性示例,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质可以包括易失性和非易失性介质、可移动和不可移动介质、任何方法或技术实现的用于存储的信息,如计算机可读指令、数据结构、程序模块或其它数据。计算机存储介质可以包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字视频盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储器或其它磁存储设备或者可用于存储所期望的信息,并且可以由计算机访问的任何其它介质。通信介质通常具体化为计算机的可读指令、数据结构、程序模块或诸如载波或其它传输机制的已调制数据信号中的其它数据,并包括任何信息传递介质。术语“调制数据信号”是指信号,该信号具有一个或多个信号中的特征集并以这样的方式设置或改变其特征集,以对该信号中的信息进行编码。例如,但不限于,通信介质包括有线介质(诸如有线网络或网线连接)以及无线介质(如声学、RF、红外和其它无线介质)。任何上述的组合也应包括在计算机可读介质的范围之内。手机2300包括处理器2302,用于控制和处理所有芯片上的操作和功能。储存器2304与处理器2302通信,该储存器2304用于存储数据和一个或多个应用程序2306(例如,视频播放软件,用户反馈模块等)。其他应用程序可以包括预定的语音命令以便于通过用户反馈信号开始语音识别。应用程序2306可以存储在存储器2304和/或固件2308中,并由处理器2302执行。固件2308也可以存储用于执行初始化手机2300的启动代码。通信模块2310与处理器2302通信,以实现与外部系统的有线/无线通信,例如,蜂窝网络、VoIP网络等。在这里,通信模块2310还可以包括合适的蜂窝收发器2311(例如,GSM收发器)和/或相应的未授权通信收发器2313(例如,支持WiFi、WiMAX)。手机2300可以是一个装置,例如蜂窝电话、移动通信功能的PDA或信息中心设备。通信模块2310实现与地面无线网络(例如广播)、数字卫星广播网络和基于互联网的无线服务网络的通信。手机2300包括一个显示装置2312,用于显示文字、图片、视频、电话功能(如来电显示功能)、设置功能、用户输入。例如,显示装置2312也可以被称为“屏幕”,可容纳上述的多媒体内容(例如,音乐的元数据、消息、壁纸、图形等)。显示装置2312也可以显示视频,并便于生成、编辑和共享视频信号。串行I/O接口2314与通信处理器2302通信,通过导线连接实现有线和/或无线串行通信(例如USB或IEEE1394),以及其他串行输入设备(如键盘,键盘和鼠标)。这可支持例如手机2300的更新和故障排除。音频功能中所提供的音频I/O模块2316可以包括一个扬声器,用于输出相关的音频信号,例如,指示用户按下适当的键或组合键启动的用户反馈信号。音频I/O模块2316可以通过麦克风来记录数据或电话语音数据,也可以为电话交谈输入语音信号。手机2300可包括插槽接口2318,用以容纳SIC卡(用户识别模块)、用户身份模块(SIM)或通用SIM卡或通用SIM2320,并与具有处理器2302的SIM卡2320通信。同时,SIM卡2320也可以被植入成手机2300,并通过下载的数据和软件更新。利用ISP或宽带电缆供应商的服务,手机2300可以通过通信模块2310处理IP数据流,以适应诸如来自IP网络(例如,因特网、企业内部网、家庭网络、个人区域网络等等)的IP流量。因此,手机2300可利用VoIP流量,并且接收已编码或已解码的格式的基于IP的多媒体内容。可以设置视频处理模块2322(例如摄像头),以对编码的多媒体内容进行解码。手机2300可包括电池和/或交流电源子系统形式的电源2324,电源2324可以通过电源I/O模块2326连接到外部电源系统或充电设备(未示出)。手机2300也可包括用于处理接收的视频内容的视频模块2330,用于记录和传输视频内容。例如,视频模块2330便于生成、编辑和共享与待付款或折扣信息相关的显示。位置跟踪模块2332用于地理定位手机2300,用来建立路径。如上文所述,这可能发生在用户自动或手动地启动反馈信号时。用户输入模块2334便于用户发起质量反馈信号。用户输入模块2334还可以接收各种折扣信息和待付款信息。该用户输入模块2334包括传统输入装置,例如小键盘、键盘、鼠标、手写笔或触摸屏。参照应用程序2306,一个磁滞模块2336利于分析和处理磁滞数据,磁滞数据可用来确定何时与接入点相关联。设置软件触发磁滞模块2338,以在检测到接入点的信标时触发磁滞模块2338。SIP客户端2340使手机2300支持SIP协议,以及将订户注册到SIP注册服务器。如上文所述,与通信模块2310相关的手机2300包括一个室内网络无线电收发器2313(例如WIFI收发器)。此功能为双模GSM手机2300支持室内无线链路,诸如IEEE802.11。手机2300至少可以容纳卫星广播服务,通过手机可以将无线语音和数字无线电芯片组集成入单一的手持设备。参见图24,其示出了用于执行实现满意度与忠诚度的采样和调查的系统的体系结构的计算机的方框图。计算机能够提供有线或无线通信网络和服务器和/或通信设备之间的网络和通信功能。图24和下面的讨论旨在提供关于适合的计算机环境2400的简要的、一般性的描述,其中在计算机环境2400中,不同的应用和组合可以产生不同的创新。虽然上面的描述中,可执行指令运行在一个或多个计算机,本领域技术人员将认识到,也可以通过与其它程序模块或组合的硬件和软件来实现。一般来说,移动计算应用程序(例如程序模块)可以包括执行特定的任务或实现特定抽象数据类型的线程、程序、模块、数据结构等。此外,本领域技术人员将会理解,这里描述的方法可以应用于其他的系统配置,包括单处理器或多处理器系统、小型机、大型计算机以及个人计算机、手持计算设备、基于微处理器的或可编程的消费电子产品等,其中每一个都可以联接到一个或多个相关联的设备。上述的程序和方法也可以在分布式计算环境中,其中,通过通信网络链接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。计算设备通常包括多种媒体,它可以包括计算机可读存储介质或通信介质,这里所使用的两个术语彼此不同。计算设备通常可以包括多种计算机可读介质或设备接口。计算机可读介质是可以由计算机访问的任何可用的介质,并包括易失性和非易失性介质,可移动和不可移动介质。通过非限定性示例,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质可以包括易失性和非易失性介质、可移动和不可移动介质、任何方法或技术实现的用于存储的信息,如计算机可读指令、数据结构、程序模块或其它数据。计算机存储介质可以包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字视频盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储器或其它磁存储设备或者可用于存储所期望的信息,并且可以由计算机访问的任何其它介质。可访问的计算机可读存储介质,由一个或多个本地或远程计算设备实现,例如,通过访问请求、查询或其他数据检索协议,对应于介质中存储的信息的各种操作。通信介质通常具体化为计算机的可读指令、数据结构、程序模块或诸如载波或其它传输机制的已调制数据信号中的其它数据,并包括任何信息传递介质。术语“调制数据信号”是指信号,该信号具有一个或多个信号中的特征集并以这样的方式设置或改变其特征集,以对该信号中的信息进行编码。例如,但不限于,通信介质包括有线介质(诸如有线网络或网线连接)以及无线介质(如声学,RF,红外和其它无线介质)。任何上述的组合也应包括在计算机可读介质的范围之内。参见图24,用于执行本文所描述的各种方案的示例环境2400包括计算机2402。计算机2402包括处理单元2404、系统存储器2406和系统总线2408。系统总线2408连接系统模块,系统模块包括但不仅限于系统存储器2406和处理单元2404。该处理单元2404可以是任何市售的处理器。双核微处理器和其他多处理器架构也可以用作处理单元2404。系统总线2408可以是任意几种类型的总线结构,可以进一步互连到存储器总线(具有或不具有存储器控制器)、外围总线,以及使用任何市售的总线的本地总线架构。系统存储器2406包括只读存储器(ROM)2410和随机存取存储器(RAM)2412。基本输入/输出系统(BIOS)存储在非易失性存储器2410中,诸如ROM、EPROM、EEPROM,BIOS包含有利于例如在启动期间转换计算机2402中的元件之间的信息的基本路径。RAM2412还可以包括一个高速RAM,如静态RAM中的缓存数据。计算机2402还包括:内部硬盘驱动器(HDD)2414(例如EIDE,SATA),该内部硬盘驱动器2414也可以配置在合适的机箱中供外部使用(未示出);磁性软盘驱动器(FDD)2416(例如,为了读出或写入到可移动软盘2418)和光盘驱动器2420(例如,读取的CD-ROM盘2422,读出或写入其他高容量的光媒体,如DVD)。通过硬盘驱动器接口2424、磁盘驱动器接口2426和光盘驱动器接口2428,硬盘驱动器2414、磁盘驱动器2416和光盘驱动器2411可以分别连接到系统总线2408。用于外部驱动器实现的接口2424至少包括通用串行总线(USB)和IEEE2494接口技术中的一者或两者。其他外部驱动器连接技术也在本发明的考虑范围中。驱动器以及与其相关的计算机可读介质提供对数据、数据结构、计算机可执行指令等等的非易失性储存。对于计算机2402,驱动器和介质容纳任意适合的数字格式的数据存储。虽然上述的计算机可读介质指的是硬盘、可移动的磁性软盘和可移动的光学介质,例如CD或DVD,但本领域中的技术人员可以理解,其他类型的媒体如可读的ZIP驱动器、盒式磁带、快闪存储卡、墨盒等也可以被用在示例性的操作环境中。进一步,任何这样包含计算机可执行指令用于执行的方法的介质的都是可行的。许多程序模块可以存储在驱动器和RAM2412中,包括操作系统2430、一个或多个应用程序2432、其它程序模块2434和程序数据2436。操作系统、应用程序、模块或全部或部分数据也可以被缓存在RAM2412中。但是应当理解,市售的各种操作系统或组合的操作系统也是可行的。通过一个或多个有线/无线输入设备(例如键盘2438)和指示设备(如鼠标2440),用户可以输入命令和信息。其他输入设备(未示出)可以包括话筒、IR遥控器、操纵杆、游戏垫、记录笔、触摸屏等。这些和其他输入设备经常通过被联接到系统总线2408的输入装置接口2442而连接到处理单元2404,但也可以通过其它接口连接,诸如并行端口、IEEE2494串行端口、游戏端口、USB端口、红外接口等。显示器2444或其它类型的显示设备也通过接口(例如视频适配器2446)连接到系统总线2408。除了显示器2444之外,计算机通常包括其它外围输出设备(未示出),如扬声器、打印机等。计算机2402可以通过有线/无线连接到一个或多个远程计算机,如远程计算机2448,而在利用逻辑连接的联网环境中操作。远程计算机2448可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其它公共网络节点,并且通常包括与所描述的计算机2402相关的许多或全部元件,出于简洁的目的,仅示出存储器/存储设备2450。描述的逻辑连接包括有线/无线连接到一个局域网(LAN)2452或更大的网络,例如广域网(WAN)2454。在办公室和公司中是常见的LAN和WAN网络环境以及企业范围的计算机网络(例如内部网)都可以连接到全球通信网络,例如因特网。当在LAN联网环境中使用时,计算机2402通过有线/无线通信网络接口或适配器2456连接到本地网络2452。适配器2456可以利用有线或无线通信联接至LAN2452,LAN2452还可以包括用于与无线适配器2456通信的无线接入点。当用在WAN网络环境中时,计算机2402可以包括调制解调器2458或连接到WAN2454上的通信服务器或其他用于通过广域网2454建立通信的方式,例如通过互联网。调制解调器2458,可以是内部或外部的有线或无线的设备,通过串行端口接口2442连接到系统总线2408。在网络环境中,所描述的程序模块与计算机2402或其中的部分可以存储在远程存储器/存储设备2450。可以理解的是,所示的网络连接是示例性的,也可以使用使计算机之间建立通信链路的其他方法。计算机2402可与布置在无线通信中的任何无线设备或实体通信,例如打印机、扫描仪、台式或便携式计算机、便携式数据助理、通信卫星或位置相关联的无线检测标签(例如报刊亭,厕所)和电话。这至少包括WiFi和蓝牙无线技术。因此,通信可以是与传统的网络或两个设备之间特定的通信的预定义的结构。WiFi或无线保真可以从家里的沙发上、一间酒店房间的床上、或在工作中的会议室连接到互联网,而不需要导线。WiFi是一种无线技术,用在手机中,使这样的设备(例如计算机)发送和接收室内和室外的基站范围内的数据。无线网络使用无线电技术,称为IEEE802.11(A,B,G等),以提供安全、可靠、快速的无线连接。WiFi网络可用于将计算机连接到对方、互联网、有线网络(其使用IEEE802.3或以太网)。WiFi网络运营在未授权的2.4和5GHz频段,具有11Mbps的(802.11)或54Mbps(802.11)的数据速率,包含两个频带(双频带)。网络可以提供在许多办公室中使用的基于10BaseT的有线以太网络相似的能力。以上(包括摘要)描述的方案和实施方式,并不旨在穷举或限制所揭示的方法和示例所公开的精确形式。本文所描述的方法和示例只是出于说明的目的,相关领域的技术人员能够理解,多种修改依然包括在这些方案和实施方式的范围内。如本文所用的“示例”仅用作示例、例如或示例性。本文所描述的主题并不限于这些示例。此外,本文中描述为“示例”的任何方面或设计并不被解释为比其他的方法或设计优秀,也不是这意味着排除类似的结构和技术。此外,“包括”、“包含”、“具有”,和其它类似的词语用在详细描述或权利要求书中,这样的术语旨在表示其为包括性的方式,不排除任何额外的或其他的模块。本文已经描述的各个方法和示例中,在适用的情况下,可以有相关的变化或改进,可以修改和补充。可替代的或类似的方法和流程,不应该视为脱离本文所涉及的方法。因此,所公开的方法不应该局限于本文所描述的任何单个示例,而是应根据所附的权利要求书的广度和范围解释。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1