二维矩阵码的解码方法以及记载有编码图片的卡牌与流程

文档序号:14686168发布日期:2018-06-14 23:38
本发明涉及图形处理和OpenCV(OpenSourceComputerVisionLibrary,开源计算机视觉库)识别的
技术领域
,特别地,涉及一种二维矩阵码的编码方法以及记载有编码图片的卡牌。
背景技术
:计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使图片被处理成为更适合人眼观察或传送给仪器检测的图像。相关学科包括图像处理、模式识别、图像识别、景物分析、图象理解等,还包括空间形状的描述、几何建模等过程。计算机视觉的研究对象主要是映射到单幅或多幅图像上的三维场景,例如三维场景的重建。其中,增强现实(AugmentedReality,AR)是一种实时地计算摄影机影像的位置及角度并加上相应图像的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动,使得真实环境和虚拟物体实时叠加后形成的虚拟世界被人类感官所感知,从而达到超越现实的感官体验,在数码游戏领域运用广泛。AR技术包含了多媒体、三维建模、实时视频显示及控制、多传感器融合、实时跟踪及注册、场景融合等新技术与新手段。而传统AR卡牌产品,仅单纯的实现将实物卡牌与虚拟模型结合的功能,再辅以简单的网络激活与单机交互的玩法。因为AR的核心部分是图像分析系统,而当前市场上的产品多采用高通的Vuforia接口实现。例如央数文化(上海)股份有限公司的梦境盒子、3D增强现实三维互动学习机、口袋动物立体学习卡等产品;广州创幻数码科技有限公司的超次元系列产品。其中,每张卡牌必须经过高通的图像识别网站转换成识别码后才能使用,操作繁琐;超次元系列产品在激活卡牌或有交互操作时,用户又需要重新扫描卡牌上的二维码,使得使用过程经常被打断,用户体验非常差。并且,高通Vuforia解决方案基于图像识别,无法读取数据,并且在一帧中不能识别两个相同的标示图像,影响识别速度。技术实现要素:本发明目的在于提供一种二维矩阵码的解码方法以及记载有编码图片的卡牌,以解决客户端需辨别卡牌方向才能识别卡牌的技术问题,并且可预先设置角色形象在游戏界面展示形象的特定方向。为实现上述目的,本发明提供了一种二维矩阵码的解码方法,包括步骤:A、获得数据矩阵将数据矩阵的对应图形压缩到(n+2)×(n+2)像素,若图片上下左右四边的1个单位像素均为黑色,则按照图片白色像素为1、黑色像素为0的原则,将图片还原为n×n数据矩阵B、获得数据矩阵旋转后的数据值将数据矩阵在同一平面内旋转三次,分别得到数据矩阵每次旋转的角度为90°;上述四个数据矩阵展开成数据形式,分别得到Dv0、Dv1、Dv2、Dv3;C、CRC校验确定四个数据的正确性对Dv0、Dv1、Dv2、Dv3四个数据的前X位分别计算Y位CRC校验值,然后比对上述四个数据的后Y位是否分别和计算值相等;X=n2-Y,Y为8、16、32、64;D、取唯一通过检验的数据,作为解码结果。优选的,步骤D之后还包括:将Dv0、Dv1、Dv2、Dv3四个数据进行比对,取极值DvF;若在步骤D中,未在四个数据中找到唯一相等的数据,则将DvF与曾经识别成功的码Dc进行二进制数据位匹配,设定两者之间的不同位数的个数小于m,则通过校验,取该DvF作为解码结果,0<m<n。优选的,若码Dc已与虚拟物关联,则通过校验的DvF与同一虚拟物关联。优选的,所述极值为最大值或者最小值。优选的,在步骤A之前还包括:A1、从视频中截取图片;A2、对图片进行去色、二值化并反色处理;A3、获得图像中的封闭形状,在封闭形状中搜索四边形;A4、四边形区域还原,获得数据矩阵的图形。优选的,每一幅编码图片与一个特定的卡牌角色形象关联。本申请还提供记载有根据上述的解码方法所针对的编码图片的卡牌,所述卡牌表面记载有编码图片,以及与所述编码图片所关联的角色形象、角色方向一致的图案;所述编码图片为数据矩阵的对应图形。本发明具有以下有益效果:本发明提供了一种无需在卡牌角色数据的编码上定义特定的方向识别,利用矩阵码解码过程中的特定规则(旋转数据矩阵获得四个数据矩阵,通过检验选出方向正确的数据矩阵数值),使用者通过数码终端上的常规图片识别,任意方向解码即可获取编码图片所对应的特定方向的卡牌角色形象。也就是说,本发明解码方法在现有矩形码解码的基础上,新增了方向要素,通过四个方向的CRC校验,选出唯一正确的数据,使得用户在解码时无需关注卡牌上的卡牌方向,使用更为方便。并且,为让使用者更清晰地了解从卡牌编码图片上获得的角色形象,卡牌表面还记载了与编码图片所关联角色的形象、方向匹配的图形,给予所见即所得的用户体验。除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。附图说明构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是本发明优选实施例的编码流程示意图;图2是本发明优选实施例的编码图片示意图。具体实施方式以下结合附图对本发明的实施例进行详细说明,但是本发明可以根据权利要求限定和覆盖的多种不同方式实施。参见图1,本发明提供了一种二维矩阵码的解码方法,包括步骤:A、获得数据矩阵将数据矩阵的图形压缩到(n+2)×(n+2)像素,判断图片上下左右四边的1个单位像素是否为黑色,如果均为黑色则分析图片中间的n×n像素;按照图片白色像素为1、黑色像素为0的原则,将图片还原为n×n数据矩阵例如,在n=8时,将图2中的图片压缩至10×10像素,判断图片上下左右四边的1个单位像素是黑色,将图片中间的8×8像素还原为数据矩阵Mn×nv0=1110111001111110001111001101010110111101010011110101101100101100]]>其按行展开成数据的16进制表示为Dv0=0xEE7E3CD5BD4F5B2C;B、获得旋转后的数据值将步骤A获得的数据矩阵在同一平面内旋转三次,分别得到数据矩阵每次旋转的角度为90°;例如,数据矩阵旋转后得到如下三个数据矩阵:第一个数据矩阵为:Mn×nv1=0001111011000110111111011110111101111010111010011101011010011000]]>其按行展开成数据的16进制表示为Dv1=0x1EC6FDEF7AE9D698;第二个数据矩阵为:Mn×nv2=0011010011011010111100101011110110101011001111000111111001110111]]>其按行展开成数据的16进制表示为Dv2=0x34DAF2BDAB3C7E77;第三个数据矩阵为:Mn×nv2=0001100101101011100101110101111011110111101111110110001101111000]]>其按行展开成数据的16进制表示为Dv3=0x196B975EF7BF6378。C、CRC校验确定四个数值的正确性对Dv0、Dv1、Dv2、Dv3四个数据的前X位分别计算Y位CRC校验值,然后比对上述四个数据的后Y位是否分别和计算值相等;X=n2-Y;例如,在X=56,Y=8的情况:Dv0的前56位数据的16进制表示为0xEE7E3CD5BD4F5B;8位CRC校验值为01011110,与其Dv0的后8位不等;Dv1的前56位数据的16进制表示为0x1EC6FDEF7AE9D8,8位CRC校验值为11010011,与其Dv1的后8位不等;Dv2的前56位数据的16进制表示为0x34DAF2BDAB3C7E,8位CRC校验值为00001001,与其Dv2的后8位不等;Dv3的前56位数据的16进制表示为0x196B975EF7BF63,8位CRC校验值为01111000,与其Dv3的后8位相等;D、取唯一通过检验的数据,作为解码结果。也就是取在检验中唯一相等的Dv3作为解码结果。而该编码图片都可以在云端服务器与一个特定的卡牌角色形象关联,例如喷火龙。则使用者在客户端解码该矩阵码图片,获得解码结果Dv3后,则会在相应系统中生成一个喷火龙的角色形象。并且,由于该矩阵码图片携带了该形象的方向信息,生成的喷火龙的角色形象则会直接展现出特定方向,例如向下或向左。所以,本申请还提供有记载有根据上述的编码方法制得的编码图片(解码方法所针对的编码图片)的卡牌,所述卡牌表面记载有编码图片,以及与所述编码图片所关联的角色形象、角色方向一致的图案。例如,记载有如图2所示的图片,以及一只向下的喷火龙形象。使用者在客户端解码该矩阵码图片后,则会在相应系统中生成一只向下的喷火龙的角色形象。可与上述编码方法相对应的一种二维矩阵码的编码方法,包括步骤:A、为二进制数据添加CRC(CyclicRedundancyCheck,循环冗余校验码)校验码:对X位二进制数据左移Y位,将二进制的Y位CRC校验码加入后,转换为加入CRC校验码的二进制数据,长度为X+Y;Y可为8、16、32、64。例如,在X=56,Y=8的情况:随机取56位数据为:00011001011010111001011101011110111101111011111101100011,其16进制表示为0x196B975EF7BF63;其CRC8校验码为:01111000,其16进制表示为0x78;合并后数据16进制表示为0x196B975EF7BF6378;二进制表示为:0001100101101011100101110101111011110111101111110110001101111000B、加入CRC校验码的二进制数据转成数据矩阵形式:数据矩阵阶数为X与Y的和开方后取整,得到n×n数据矩阵若X+Y<n2,高位用0补齐到n2位;然后按照从高位到低位的顺序,将补齐后的数据每n位为一行,组成一个n×n矩阵例如:步骤A中,X=56,Y=8的情况,二进制矩阵阶数步骤A二进制数据:0001100101101011100101110101111011110111101111110110001101111000转换后的原始矩阵为:Mn×n0=0001100101101011100101110101111011110111101111110110001101111000]]>其按行展开成数据的16进制表示为D0=0x196B975EF7BF6378;C、旋转此数据矩阵三次,获得三个数据矩阵:将上一步得到的所述n×n数据矩阵在同一平面内旋转三次,分别得到每次旋转的角度为90°。旋转的方向不受限制,顺时针或者逆时针旋转都不影响本申请实施例的实现。例如:旋转后得到如下三个数据矩阵:第一个数据矩阵为:Mn×n1=1110111001111110001111001101010110111101010011110101101100101100]]>其按行展开成数据的16进制表示为D1=0xEE7E3CD5BD4F5B2C;第二个数据矩阵为:Mn×n2=0001111011000110111111011110111101111010111010011101011010011000]]>其按行展开成数据的16进制表示为D2=0x1EC6FDEF7AE9D698;第三个数据矩阵为:Mn×n3=0011010011011010111100101011110110101011001111000111111001110111]]>其按行展开成数据的16进制表示为D3=0x34DAF2BDAB3C7E77。D、校验合法性:a)CRC合法性校验对D1、D2、D3取出前X位,计算出Y位CRC校验码,然后分别和D1、D2、D3的后Y位比对,比对结果为没有任何一个通过CRC校验,则此矩阵码合法;例如:D1取出前56位,计算出8位CRC校验码为:01011110;D1的后8位为00101100,比对不相同;D2取出前56位,计算出8位CRC校验码为:11010011;D2的后8位为10011000,比对不相同;D3取出前56位,计算出8位CRC校验码为:00001001;D3的后8位为01110111,比对不相同;为方便计算,可以将二进制数据格式转为十六进制数据格式进行计算。例如D1=0xEE7E3CD5BD4F5B2C,取出前56位0xEE7E3CD5BD4F5B计算得到的CRC8校验码为0x5E,而D1的后8位的16进制表示为0x2C,与其CRC8校验码不相等。再依次同理判断D2、D3。如此,保证只有D0的CRC校验可以通过;D1、D2、D3均不应该通过CRC校验;则通过了CRC合法性校验。b)对称校验四个数据矩阵均不相等,则此矩阵码合法;如果存在相等的情况,则表示四个旋转矩阵存在对称情况,这样的矩阵码无法判断方向,不能使用。例如,从步骤B、C的数据矩阵表达式来看,四个数据矩阵均不相等;则通过了对称校验。上述CRC合法性校验和对称校验无先后顺序,先进行任意一个都不影响本实施例的实现。经过多次测试,当X=56,Y=8的情况,CRC合法性校验通过率为98.2%。绝大多数编码是可以通过校验的,并不会造成计算冗余和繁琐。E、取极值,确定显示码在四个数据矩阵即D0、D1、D2、D3四个数中取极值DF为显示码;在步骤D中处理了相等的情况,所以在D0、D1、D2、D3中必然存在极值。在具体实施中,极值DF可以为D0、D1、D2、D3四个数的最大值或者最小值。F、生成编码图片获得与DF对应的数据矩阵图片的长和宽分别为n+2个单位,左右上下各留出一个单位设置为第一色,中间的n×n个单位按照中的数据填充,1填充第二色,0填充第一色。例如,步骤D中确定的最大码为图片宽度W设定为500像素,按照填充规则生成的编码图片如图2所示。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1