CN108549828B - 等价二值正方矩阵识别***及其识别方法 - Google Patents

等价二值正方矩阵识别***及其识别方法 Download PDF

Info

Publication number
CN108549828B
CN108549828B CN201810185002.0A CN201810185002A CN108549828B CN 108549828 B CN108549828 B CN 108549828B CN 201810185002 A CN201810185002 A CN 201810185002A CN 108549828 B CN108549828 B CN 108549828B
Authority
CN
China
Prior art keywords
sequence
coding
boundary
value
coding sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201810185002.0A
Other languages
English (en)
Other versions
CN108549828A (zh
Inventor
黄毅峰
黄新宸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CN108549828A publication Critical patent/CN108549828A/zh
Application granted granted Critical
Publication of CN108549828B publication Critical patent/CN108549828B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提供的等价二值正方矩阵识别***及其识别方法,包括:数据输入模块,用于输入二值正方矩阵数据;数据编码模块与数据输入模块连接,用于对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码;数据比对模块与数据编码模块连接,用于对生成的矩阵数据编码进行比对;数据输出模块与数据比对模块连接,用于输出矩阵数据编码的比对结果。本发明加快计算机识别等价二值正方矩阵的处理速度,只需花费少量时间为其生成矩阵数据编码,并在识别二值正方矩阵是否等价时只比对相关二值正方矩阵的矩阵数据编码。由于矩阵数据编码占用存储器空间大小远小于对应的所有等价二值正方矩阵,降低了计算机识别等价二值正方矩阵需要的存储器大小。

Description

等价二值正方矩阵识别***及其识别方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种等价二值正方矩阵识别***及其识别方法。
背景技术
二值正方矩阵在这里是指某个矩阵内的所有单元中含有的值只有两种情况且行数列数相同(即每行包含的单元数和每列包含的单元数相同)的矩阵。二值矩阵在计算机领域内被广泛应用。随着物联网和移动支付技术的快速发展而几乎无处不在的二维码便是二值矩阵的典型应用之一。
如果把某个二值正方矩阵旋转或翻转后形成的所有二值正方矩阵看作是本质相同的话(这里称为等价二值正方矩阵),那么依据现有技术,计算机需要消耗大量资源(包括运算时间和内存)来计算以识别其等价二值正方矩阵。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种提高等价二值正方矩阵识别效率的等价二值正方矩阵识别***及其识别方法。
为解决上述技术问题,本发明等价二值正方矩阵识别***,包括:数据输入模块,用于输入二值正方矩阵数据;
数据编码模块,数据编码模块与数据输入模块连接,用于对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码;
数据比对模块,数据比对模块与数据编码模块连接,用于对生成的矩阵数据编码进行比对;
数据输出模块,数据输出模块与数据比对模块连接,用于输出矩阵数据编码的比对结果。
优选地,矩阵数据编码包括矩阵边编码和矩阵角编码。
一种等价二值正方矩阵识别方法,包括如下步骤:
输入二值正方矩阵数据;
对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码;
对生成的矩阵数据编码进行比对;
输出矩阵数据编码的比对结果。
优选地,矩阵数据编码包括矩阵边编码和矩阵角编码。
优选地,对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码的步骤包括生成矩阵边编码的步骤:
获得二值正方矩阵的左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列;
对左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列进行排序,得到矩阵边编码。
优选地,获得二值正方矩阵的左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列的步骤包括:
以输入的二值正方矩阵数据之二值中的任意一个作为基准编码值;
按行累加二值正方矩阵数据的每一行中各个基准编码值所在列与二值正方矩阵最左列之间的列数差,并按序保存形成左边界编码序列;其中
左边界编码序列的长度为二值正方矩阵数据的行数,左边界编码序列的每个序列位为每行各个基准编码值所在列与二值正方矩阵最左列之间的列数差之和;左边界编码序列的首位为首行中各个基准编码值所在列与二值正方矩阵最左列之间的列数差之和,左边界编码序列的首位为左边界编码序列最高位;左边界编码序列的末位为末行中各个基准编码值所在列与二值正方矩阵最左列之间的列数差之和,左边界编码序列的末位为左边界编码序列最低位;
按行累加二值正方矩阵数据的每一行中各个基准编码值所在列与二值正方矩阵最右列之间的列数差,并按序保存形成右边界编码序列;其中
右边界编码序列的长度为二值正方矩阵数据的行数,右边界编码序列的每个序列位为每行各个基准编码值所在列与二值正方矩阵最右列之间的列数差之和;右边界编码序列的首位为首行中各个基准编码值所在列与二值正方矩阵最右列之间的列数差之和,右边界编码序列的首位为右边界编码序列最高位;右边界编码序列的末位为末行中各个基准编码所在列与二值正方矩阵最右列之间的列数差之和,右边界编码序列的末位为右边界编码序列最低位;
按列累加二值正方矩阵数据的每一列中各个基准编码值所在行与二值正方矩阵首行之间的行数差,并按序保存形成顶边界编码序列;其中
顶边界编码序列的长度为二值正方矩阵数据的列数,顶边界编码序列的每个序列位为每列各个基准编码值所在行与二值正方矩阵首行之间的行数差之和;顶边界编码序列的首位为首列中各个基准编码值所在行与二值正方矩阵首行之间的行数差之和,顶边界编码序列的首位为顶边界编码序列最高位;顶边界编码序列的末位为末列中各个基准编码值所在行与二值正方矩阵首行之间的行数差之和,顶边界编码序列的末位为顶边界编码序列最低位;
按列累加二值正方矩阵数据的每一列中各个基准编码值所在行与二值正方矩阵末行之间的行数差,并按序保存形成底边界编码序列;其中
底边界编码序列的长度为二值正方矩阵数据的列数,底边界编码序列的每个序列位为每列各个基准编码值所在行与二值正方矩阵末行之间的行数差之和;底边界编码序列的首位为首列中各个基准编码值所在行与二值正方矩阵末行之间的行数差之和,底边界编码序列的首位为底边界编码序列最高位;底边界编码序列的末位为末列中各个基准编码值所在行与二值正方矩阵末行之间的行数差之和,底边界编码序列的末位为底边界编码序列最低位;
对左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列进行排序,得到矩阵边编码。
优选地,对左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列进行排序,得到矩阵边编码的步骤包括:
获得序列A1,序列A1为左边界编码序列与该左边界编码序列的倒置序列中序列值较大的序列;
获得序列B1,序列B1为右边界编码序列与该右边界编码序列的倒置序列中序列值较大的序列;
获得序列C1,序列C1为顶边界编码序列与该顶边界编码序列的倒置序列中序列值较大的序列;
获得序列D1,序列D1为底边界编码序列与该底边界编码序列的倒置序列中序列值较大的序列;
按序列值对序列A1、序列B1、序列C1和序列D1进行降序排序后,按序列值从大到小的顺序拼接序列A1、序列B1、序列C1和序列D1获得序列X1,序列X1即为矩阵边编码;其中,高位序列位数值大的序列的整体序列值大;或
对左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列进行排序,得到矩阵边编码的步骤包括:
获得序列A2,序列A2为左边界编码序列与该左边界编码序列的倒置序列中序列值较大的序列;
获得序列B2,序列B2为右边界编码序列与该右边界编码序列的倒置序列中序列值较大的序列;
获得序列C2,序列C2为顶边界编码序列与该顶边界编码序列的倒置序列中序列值较大的序列;
获得序列D2,序列D2为底边界编码序列与该底边界编码序列的倒置序列中序列值较大的序列;
按序列值对序列A2、序列B2、序列C2和序列D2进行升序排序后,按序列值从小到大的顺序拼接序列A2、序列B2、序列C2和序列D2获得序列X2,序列X2即为矩阵边编码;其中,高位序列位数值大的序列的整体序列值大;或
对左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列进行排序,得到矩阵边编码的步骤包括:
获得序列A3,序列A3为左边界编码序列与该左边界编码序列的倒置序列中序列值较小的序列;
获得序列B3,序列B3为右边界编码序列与该右边界编码序列的倒置序列中序列值较小的序列;
获得序列C3,序列C3为顶边界编码序列与该顶边界编码序列的倒置序列中序列值较小的序列;
获得序列D3,序列D3为底边界编码序列与该底边界编码序列的倒置序列中序列值较小的序列;
按序列值对序列A3、序列B3、序列C3和序列D3进行降序排序后,按序列值从大到小的顺序拼接序列A3、序列B3、序列C3和序列D3获得序列X3,序列X3即为矩阵边编码;其中,高位序列位数值大的序列的整体序列值大;或
对左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列进行排序,得到矩阵边编码的步骤包括:
获得序列A4,序列A4为左边界编码序列与该左边界编码序列的倒置序列中序列值较小的序列;
获得序列B4,序列B4为右边界编码序列与该右边界编码序列的倒置序列中序列值较小的序列;
获得序列C4,序列C4为顶边界编码序列与该顶边界编码序列的倒置序列中序列值较小的序列;
获得序列D4,序列D4为底边界编码序列与该底边界编码序列的倒置序列中序列值较小的序列;
按序列值对序列A4、序列B4、序列C4和序列D4进行升序排序后,按序列值从小到大的顺序拼接序列A4、序列B4、序列C4和序列D4获得序列X4,序列X4即为矩阵边编码;其中,高位序列位数值大的序列的整体序列值大。
优选地,对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码的步骤包括生成矩阵角编码的步骤:
累加二值正方矩阵四个顶点的值,形成顶点和序列;
获得左上角编码序列、右上角编码序列、左下角编码序列和右下角编码序列;
对左上角编码序列、右上角编码序列、左下角编码序列和右下角编码序列进行排序,得到矩阵角编码。
优选地,对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码的步骤包括生成矩阵角编码的步骤:
累加二值正方矩阵四个顶点的值,形成顶点和序列E1;其中,基准编码值为非零数值,非基准编码值为零;
用二值正方矩阵的行数除以二的商四舍五入得到长度Q1
将左边界编码序列从最高位起向最低位方向取Q1个左边界编码序列编码值,将取得的Q1个左边界编码序列编码值依次拼接形成序列F1
将顶边界编码序列从最高位起向最低位方向取Q1个顶边界编码序列编码值,将取得的Q1个顶边界编码序列编码值依次拼接形成序列G1
将序列F1和序列G1拼接形成序列F1G1和序列G1F1,取序列F1G1和序列G1F1中较大者作为左上角编码序列S1
将右边界编码序列从最高位起向最低位方向取Q1个右边界编码序列编码值,将取得的Q1个右边界编码序列编码值依次拼接形成序列H1
将顶边界编码序列从最低位起向最高位方向取Q1个顶边界编码序列编码值,将取得的Q1个顶边界编码序列编码值依次拼接形成序列I1
将序列H1和序列I1拼接形成序列H1I1和序列I1H1,取序列H1I1和序列I1H1中较大者作为右上角编码序列T1
将左边界编码序列从最低位起向最高位方向取Q1个左边界编码序列编码值,将取得的Q1个左边界编码序列编码值依次拼接形成序列J1
将底边界编码序列从最高位起向最低位方向取Q1个底边界编码序列编码值,将取得的Q1个底边界编码序列编码值依次拼接形成序列K1
将序列J1和序列K1拼接形成序列J1K1和序列K1J1,取序列J1K1和序列K1J1中较大者作为左下角编码序列U1
将右边界编码序列从最低位起向最高位方向取Q1个右边界编码序列编码值,将取得的Q1个右边界编码序列编码值依次拼接形成序列L1
将底边界编码序列从最低位起向最高位方向取Q1个底边界编码序列编码值,将取得的Q1个底边界编码序列编码值依次拼接形成序列M1
将序列L1和序列M1拼接形成序列L1M1和序列M1L1,取序列L1M1和序列M1L1中较大者作为右下角编码序列V1
按序列值对左上角编码序列S1、右上角编码序列T1、左下角编码序列U1和右下角编码序列V1进行降序排序后,按序列值从大到小的顺序拼接左上角编码序列S1、右上角编码序列T1、左下角编码序列U1和右下角编码序列V1获得序列W1;拼接顶点和序列E1和序列W1得到序列Y1,序列Y1即为矩阵角编码;或
对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码的步骤包括生成矩阵角编码的步骤:
累加二值正方矩阵四个顶点的值,形成顶点和序列E2;其中,基准编码值为非零数值,非基准编码值为零;
用二值正方矩阵的行数除以二的商四舍五入得到长度Q2
将左边界编码序列从最高位起向最低位方向取Q2个左边界编码序列编码值,将取得的Q2个左边界编码序列编码值依次拼接形成序列F2
将顶边界编码序列从最高位起向最低位方向取Q2个顶边界编码序列编码值,将取得的Q2个顶边界编码序列编码值依次拼接形成序列G2
将序列F2和序列G2拼接形成序列F2G2和序列G2F2,取序列F2G2和序列G2F2中较大者作为左上角编码序列S2
将右边界编码序列从最高位起向最低位方向取Q2个右边界编码序列编码值,将取得的Q2个右边界编码序列编码值依次拼接形成序列H2
将顶边界编码序列从最低位起向最高位方向取Q2个顶边界编码序列编码值,将取得的Q2个顶边界编码序列编码值依次拼接形成序列I2
将序列H2和序列I2拼接形成序列H2I2和序列I2H2,取序列H2I2和序列I2H中较大者作为右上角编码序列T2
将左边界编码序列从最低位起向最高位方向取Q2个左边界编码序列编码值,将取得的Q2个左边界编码序列编码值依次拼接形成序列J2
将底边界编码序列从最高位起向最低位方向取Q2个底边界编码序列编码值,将取得的Q2个底边界编码序列编码值依次拼接形成序列K2
将序列J2和序列K2拼接形成序列J2K2和序列K2J2,取序列J2K2和序列K2J2中较大者作为左下角编码序列U2
将右边界编码序列从最低位起向最高位方向取Q2个右边界编码序列编码值,将取得的Q2个右边界编码序列编码值依次拼接形成序列L2
将底边界编码序列从最低位起向最高位方向取Q2个底边界编码序列编码值,将取得的Q2个底边界编码序列编码值依次拼接形成序列M2
将序列L2和序列M2拼接形成序列L2M2和序列M2L2,取序列L2M2和序列M2L2中较大者作为右下角编码序列V2
按序列值对左上角编码序列S2、右上角编码序列T2、左下角编码序列U2和右下角编码序列V2进行升序排序后,按序列值从小到大的顺序拼接左上角编码序列S2、右上角编码序列T2、左下角编码序列U2和右下角编码序列V2获得序列W2;拼接顶点和序列E2和序列W2得到序列Y2,序列Y2即为矩阵角编码;或
对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码的步骤包括生成矩阵角编码的步骤:
累加二值正方矩阵四个顶点的值,形成顶点和序列E3;其中,基准编码值为非零数值,非基准编码值为零;
用二值正方矩阵的行数除以二的商四舍五入得到长度Q3
将左边界编码序列从最高位起向最低位方向取Q3个左边界编码序列编码值,将取得的Q3个左边界编码序列编码值依次拼接形成序列F3
将顶边界编码序列从最高位起向最低位方向取Q3个顶边界编码序列编码值,将取得的Q3个顶边界编码序列编码值依次拼接形成序列G3
将序列F3和序列G3拼接形成序列F3G3和序列G3F3,取序列F3G3和序列G3F3中较小者作为左上角编码序列S3
将右边界编码序列从最高位起向最低位方向取Q3个右边界编码序列编码值,将取得的Q3个右边界编码序列编码值依次拼接形成序列H3
将顶边界编码序列从最低位起向最高位方向取Q3个顶边界编码序列编码值,将取得的Q3个顶边界编码序列编码值依次拼接形成序列I3
将序列H3和序列I3拼接形成序列H3I3和序列I3H3,取序列H3I3和序列I3H中较小者作为右上角编码序列T3
将左边界编码序列从最低位起向最高位方向取Q3个左边界编码序列编码值,将取得的Q3个左边界编码序列编码值依次拼接形成序列J3
将底边界编码序列从最高位起向最低位方向取Q3个底边界编码序列编码值,将取得的Q3个底边界编码序列编码值依次拼接形成序列K3
将序列J3和序列K3拼接形成序列J3K3和序列K3J3,取序列J3K3和序列K3J3中较小者作为左下角编码序列U3
将右边界编码序列从最低位起向最高位方向取Q3个右边界编码序列编码值,将取得的Q3个右边界编码序列编码值依次拼接形成序列L3
将底边界编码序列从最低位起向最高位方向取Q3个底边界编码序列编码值,将取得的Q3个底边界编码序列编码值依次拼接形成序列M3
将序列L3和序列M3拼接形成序列L3M3和序列M3L3,取序列L3M3和序列M3L3中较小者作为右下角编码序列V3
按序列值对左上角编码序列S3、右上角编码序列T3、左下角编码序列U3和右下角编码序列V3进行降序排序后,按序列值从大到小的顺序拼接左上角编码序列S3、右上角编码序列T3、左下角编码序列U3和右下角编码序列V3获得序列W3;拼接顶点和序列E3和序列W3得到序列Y3,序列Y3即为矩阵角编码;或
对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码的步骤包括生成矩阵角编码的步骤:
累加二值正方矩阵四个顶点的值,形成顶点和序列E4;其中,基准编码值为非零数值,非基准编码值为零;
用二值正方矩阵的行数除以二的商四舍五入得到长度Q4
将左边界编码序列从最高位起向最低位方向取Q4个左边界编码序列编码值,将取得的Q4个左边界编码序列编码值依次拼接形成序列F4
将顶边界编码序列从最高位起向最低位方向取Q4个顶边界编码序列编码值,将取得的Q4个顶边界编码序列编码值依次拼接形成序列G4
将序列F4和序列G4拼接形成序列F4G4和序列G4F4,取序列F4G4和序列G4F4中较小者作为左上角编码序列S4
将右边界编码序列从最高位起向最低位方向取Q4个右边界编码序列编码值,将取得的Q4个右边界编码序列编码值依次拼接形成序列H4
将顶边界编码序列从最低位起向最高位方向取Q4个顶边界编码序列编码值,将取得的Q4个顶边界编码序列编码值依次拼接形成序列I4
将序列H4和序列I4拼接形成序列H4I4和序列I4H4,取序列H4I4和序列I4H4中较小者作为右上角编码序列T4
将左边界编码序列从最低位起向最高位方向取Q4个左边界编码序列编码值,将取得的Q4个左边界编码序列编码值依次拼接形成序列J4
将底边界编码序列从最高位起向最低位方向取Q4个底边界编码序列编码值,将取得的Q4个底边界编码序列编码值依次拼接形成序列K4
将序列J4和序列K4拼接形成序列J4K4和序列K4J4,取序列J4K4和序列K4J4中较小者作为左下角编码序列U4
将右边界编码序列从最低位起向最高位方向取Q4个右边界编码序列编码值,将取得的Q4个右边界编码序列编码值依次拼接形成序列L4
将底边界编码序列从最低位起向最高位方向取Q4个底边界编码序列编码值,将取得的Q4个底边界编码序列编码值依次拼接形成序列M4
将序列L4和序列M4拼接形成序列L4M4和序列M4L4,取序列L4M4和序列M4L4中较小者作为右下角编码序列V4
按序列值对左上角编码序列S4、右上角编码序列T4、左下角编码序列U4和右下角编码序列V4进行升序排序后,按序列值从小到大的顺序拼接左上角编码序列S4、右上角编码序列T4、左下角编码序列U4和右下角编码序列V4获得序列W4;拼接顶点和序列E4和序列W4得到序列Y4,序列Y4即为矩阵角编码。
优选地,对生成的矩阵数据编码进行比对的步骤包括:
比较多个二值正方矩阵的矩阵数据编码,判定具有相同矩阵数据编码的二值正方矩阵判为等价二值正方矩阵。
与现有技术相比,本发明具有如下优势:本发明加快计算机识别等价二值正方矩阵的处理速度,只需花费少量时间为其生成矩阵数据编码,并在识别二值正方矩阵是否等价时只比对相关二值正方矩阵的矩阵数据编码。由于矩阵数据编码占用存储器空间大小远小于对应的所有等价二值正方矩阵,降低了计算机识别等价二值正方矩阵需要的存储器大小。因此无论从存储空间角度还是从比对运算速度的角度,都优于现有的公知技术。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征目的和优点将会变得更明显。
图1为本发明等价二值正方矩阵识别***原理图;
图2为本发明等价二值正方矩阵识别方法流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
如图1所示,本发明等价二值正方矩阵识别***,包括:数据输入模块,用于输入二值正方矩阵数据;数据编码模块,数据编码模块与数据输入模块连接,用于对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码;数据比对模块,数据比对模块与数据编码模块连接,用于对生成的矩阵数据编码进行比对;数据输出模块,数据输出模块与数据比对模块连接,用于输出矩阵数据编码的比对结果。
如图2所示,本发明等价二值正方矩阵识别方法,包括如下步骤:
步骤1,输入二值正方矩阵数据;
步骤2,对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码;
步骤3,对生成的矩阵数据编码进行比对;
步骤4,输出矩阵数据编码的比对结果。
步骤2包括:
步骤2.1,以输入的二值正方矩阵数据之二值中的任意一个作为基准编码值;
步骤2.2,按行累加二值正方矩阵数据的每一行中各个基准编码值所在列与二值正方矩阵最左列之间的列数差,并按序保存形成左边界编码序列;其中
左边界编码序列的长度为二值正方矩阵数据的行数,左边界编码序列的每个序列位为每行各个基准编码值所在列与二值正方矩阵最左列之间的列数差之和;左边界编码序列的首位为首行中各个基准编码值所在列与二值正方矩阵最左列之间的列数差之和,左边界编码序列的首位为左边界编码序列最高位;左边界编码序列的末位为末行中各个基准编码值所在列与二值正方矩阵最左列之间的列数差之和,左边界编码序列的末位为左边界编码序列最低位;
步骤2.3,按行累加二值正方矩阵数据的每一行中各个基准编码值所在列与二值正方矩阵最右列之间的列数差,并按序保存形成右边界编码序列;其中
右边界编码序列的长度为二值正方矩阵数据的行数,右边界编码序列的每个序列位为每行各个基准编码值所在列与二值正方矩阵最右列之间的列数差之和;右边界编码序列的首位为首行中各个基准编码值所在列与二值正方矩阵最右列之间的列数差之和,右边界编码序列的首位为右边界编码序列最高位;右边界编码序列的末位为末行中各个基准编码所在列与二值正方矩阵最右列之间的列数差之和,右边界编码序列的末位为右边界编码序列最低位;
步骤2.4,按列累加二值正方矩阵数据的每一列中各个基准编码值所在行与二值正方矩阵首行之间的行数差,并按序保存形成顶边界编码序列;其中
顶边界编码序列的长度为二值正方矩阵数据的列数,顶边界编码序列的每个序列位为每列各个基准编码值所在行与二值正方矩阵首行之间的行数差之和;顶边界编码序列的首位为首列中各个基准编码值所在行与二值正方矩阵首行之间的行数差之和,顶边界编码序列的首位为顶边界编码序列最高位;顶边界编码序列的末位为末列中各个基准编码值所在行与二值正方矩阵首行之间的行数差之和,顶边界编码序列的末位为顶边界编码序列最低位;
步骤2.5,按列累加二值正方矩阵数据的每一列中各个基准编码值所在行与二值正方矩阵末行之间的行数差,并按序保存形成底边界编码序列;其中
底边界编码序列的长度为二值正方矩阵数据的列数,底边界编码序列的每个序列位为每列各个基准编码值所在行与二值正方矩阵末行之间的行数差之和;底边界编码序列的首位为首列中各个基准编码值所在行与二值正方矩阵末行之间的行数差之和,底边界编码序列的首位为底边界编码序列最高位;底边界编码序列的末位为末列中各个基准编码值所在行与二值正方矩阵末行之间的行数差之和,底边界编码序列的末位为底边界编码序列最低位;
步骤2.6,对左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列进行排序,得到矩阵边编码。
步骤2.6.1,按照两个序列中“高位序列位数值大的序列的整体序列值大”的排序原则,进行如下计算:
步骤2.6.1.1,计算得出左边界编码序列及其倒置序列中的较大(或较小)者,称为序列A;计算得出右边界编码序列及其倒置序列中的较大(或较小)者,称为序列B;计算得出顶边界编码序列及其倒置序列中的较大(或较小)者,称为序列C;计算得出底边界编码序列及其倒置序列中的较大(或较小)者,称为序列D;
其中
计算获得序列A、B、C和D所用的“较大或较小”选择原则必须一致。
按序列A、B、C和D的序列值对该四个序列进行升序(或降序)排序后,按序拼接该四个序列获得序列X,序列X即为矩阵边编码;
具体地,获得序列A1,序列A1为左边界编码序列与该左边界编码序列的倒置序列中序列值较大的序列;
获得序列B1,序列B1为右边界编码序列与该右边界编码序列的倒置序列中序列值较大的序列;
获得序列C1,序列C1为顶边界编码序列与该顶边界编码序列的倒置序列中序列值较大的序列;
获得序列D1,序列D1为底边界编码序列与该底边界编码序列的倒置序列中序列值较大的序列;
按序列值对序列A1、序列B1、序列C1和序列D1进行降序排序后,按序列值从大到小的顺序拼接序列A1、序列B1、序列C1和序列D1获得序列X1,序列X1即为矩阵边编码;其中,高位序列位数值大的序列的整体序列值大;或
获得序列A2,序列A2为左边界编码序列与该左边界编码序列的倒置序列中序列值较大的序列;
获得序列B2,序列B2为右边界编码序列与该右边界编码序列的倒置序列中序列值较大的序列;
获得序列C2,序列C2为顶边界编码序列与该顶边界编码序列的倒置序列中序列值较大的序列;
获得序列D2,序列D2为底边界编码序列与该底边界编码序列的倒置序列中序列值较大的序列;
按序列值对序列A2、序列B2、序列C2和序列D2进行升序排序后,按序列值从小到大的顺序拼接序列A2、序列B2、序列C2和序列D2获得序列X2,序列X2即为矩阵边编码;其中,高位序列位数值大的序列的整体序列值大;或
获得序列A3,序列A3为左边界编码序列与该左边界编码序列的倒置序列中序列值较小的序列;
获得序列B3,序列B3为右边界编码序列与该右边界编码序列的倒置序列中序列值较小的序列;
获得序列C3,序列C3为顶边界编码序列与该顶边界编码序列的倒置序列中序列值较小的序列;
获得序列D3,序列D3为底边界编码序列与该底边界编码序列的倒置序列中序列值较小的序列;
按序列值对序列A3、序列B3、序列C3和序列D3进行降序排序后,按序列值从大到小的顺序拼接序列A3、序列B3、序列C3和序列D3获得序列X3,序列X3即为矩阵边编码;其中,高位序列位数值大的序列的整体序列值大;或
获得序列A4,序列A4为左边界编码序列与该左边界编码序列的倒置序列中序列值较小的序列;
获得序列B4,序列B4为右边界编码序列与该右边界编码序列的倒置序列中序列值较小的序列;
获得序列C4,序列C4为顶边界编码序列与该顶边界编码序列的倒置序列中序列值较小的序列;
获得序列D4,序列D4为底边界编码序列与该底边界编码序列的倒置序列中序列值较小的序列;
按序列值对序列A4、序列B4、序列C4和序列D4进行升序排序后,按序列值从小到大的顺序拼接序列A4、序列B4、序列C4和序列D4获得序列X4,序列X4即为矩阵边编码;其中,高位序列位数值大的序列的整体序列值大。
步骤2.7,累加二值正方矩阵四个顶点的值,保存形成顶点和E。其中,基准编码值以非零数值计,非基准编码值以零计。
用该二值正方矩阵的行数除以二的商四舍五入得到长度Q。
将左边界编码序列从最高位起向最低位方向取Q个编码值,依次拼接形成序列F。将顶边界编码序列从最高位起向最低位方向取Q个编码值,依次拼接形成序列G。拼接形成序列FG和GF,取两个拼接序列中较大(或较小)者作为左上角编码序列S。
将右边界编码序列从最高位起向最低位方向取Q个编码值,依次拼接形成序列H。将顶边界编码序列从最低位起向最高位方向取Q个编码值,依次拼接形成序列I。拼接形成序列HI和IH,取两个拼接序列中较大(或较小)者作为右上角编码序列T。
将左边界编码序列从最低位起向最高位方向取Q个编码值,依次拼接形成序列J。将底边界编码序列从最高位起向最低位方向取Q个编码值,依次拼接形成序列K。拼接形成序列JK和KJ,取两个拼接序列中较大(或较小)者作为左下角编码序列U。
将右边界编码序列从最低位起向最高位方向取Q个编码值,依次拼接形成序列L。将底边界编码序列从最低位起向最高位方向取Q个编码值,依次拼接形成序列M。拼接形成序列LM和ML,取两个拼接序列中较大(或较小)者作为右下角编码序列V。
其中
计算获得序列S、T、U和V所用的“较大或较小”选择原则必须一致。
按序列S、T、U和V的序列值对该四个序列进行升序(或降序)排序后,按序列拼接该四个序列获得序列W。拼接序列E和W得到序列Y,序列Y即为矩阵角编码序列。
具体地,累加二值正方矩阵四个顶点的值,形成顶点和序列E1;其中,基准编码值为非零数值,非基准编码值为零;
用二值正方矩阵的行数除以二的商四舍五入得到长度Q1
将左边界编码序列从最高位起向最低位方向取Q1个左边界编码序列编码值,将取得的Q1个左边界编码序列编码值依次拼接形成序列F1
将顶边界编码序列从最高位起向最低位方向取Q1个顶边界编码序列编码值,将取得的Q1个顶边界编码序列编码值依次拼接形成序列G1
将序列F1和序列G1拼接形成序列F1G1和序列G1F1,取序列F1G1和序列G1F1中较大者作为左上角编码序列S1
将右边界编码序列从最高位起向最低位方向取Q1个右边界编码序列编码值,将取得的Q1个右边界编码序列编码值依次拼接形成序列H1
将顶边界编码序列从最低位起向最高位方向取Q1个顶边界编码序列编码值,将取得的Q1个顶边界编码序列编码值依次拼接形成序列I1
将序列H1和序列I1拼接形成序列H1I1和序列I1H1,取序列H1I1和序列I1H1中较大者作为右上角编码序列T1
将左边界编码序列从最低位起向最高位方向取Q1个左边界编码序列编码值,将取得的Q1个左边界编码序列编码值依次拼接形成序列J1
将底边界编码序列从最高位起向最低位方向取Q1个底边界编码序列编码值,将取得的Q1个底边界编码序列编码值依次拼接形成序列K1
将序列J1和序列K1拼接形成序列J1K1和序列K1J1,取序列J1K1和序列K1J1中较大者作为左下角编码序列U1
将右边界编码序列从最低位起向最高位方向取Q1个右边界编码序列编码值,将取得的Q1个右边界编码序列编码值依次拼接形成序列L1
将底边界编码序列从最低位起向最高位方向取Q1个底边界编码序列编码值,将取得的Q1个底边界编码序列编码值依次拼接形成序列M1
将序列L1和序列M1拼接形成序列L1M1和序列M1L1,取序列L1M1和序列M1L1中较大者作为右下角编码序列V1
按序列值对左上角编码序列S1、右上角编码序列T1、左下角编码序列U1和右下角编码序列V1进行降序排序后,按序列值从大到小的顺序拼接左上角编码序列S1、右上角编码序列T1、左下角编码序列U1和右下角编码序列V1获得序列W1;拼接顶点和序列E1和序列W1得到序列Y1,序列Y1即为矩阵角编码;或
累加二值正方矩阵四个顶点的值,形成顶点和序列E2;其中,基准编码值为非零数值,非基准编码值为零;
用二值正方矩阵的行数除以二的商四舍五入得到长度Q2
将左边界编码序列从最高位起向最低位方向取Q2个左边界编码序列编码值,将取得的Q2个左边界编码序列编码值依次拼接形成序列F2
将顶边界编码序列从最高位起向最低位方向取Q2个顶边界编码序列编码值,将取得的Q2个顶边界编码序列编码值依次拼接形成序列G2
将序列F2和序列G2拼接形成序列F2G2和序列G2F2,取序列F2G2和序列G2F2中较大者作为左上角编码序列S2
将右边界编码序列从最高位起向最低位方向取Q2个右边界编码序列编码值,将取得的Q2个右边界编码序列编码值依次拼接形成序列H2
将顶边界编码序列从最低位起向最高位方向取Q2个顶边界编码序列编码值,将取得的Q2个顶边界编码序列编码值依次拼接形成序列I2
将序列H2和序列I2拼接形成序列H2I2和序列I2H2,取序列H2I2和序列I2H中较大者作为右上角编码序列T2
将左边界编码序列从最低位起向最高位方向取Q2个左边界编码序列编码值,将取得的Q2个左边界编码序列编码值依次拼接形成序列J2
将底边界编码序列从最高位起向最低位方向取Q2个底边界编码序列编码值,将取得的Q2个底边界编码序列编码值依次拼接形成序列K2
将序列J2和序列K2拼接形成序列J2K2和序列K2J2,取序列J2K2和序列K2J2中较大者作为左下角编码序列U2
将右边界编码序列从最低位起向最高位方向取Q2个右边界编码序列编码值,将取得的Q2个右边界编码序列编码值依次拼接形成序列L2
将底边界编码序列从最低位起向最高位方向取Q2个底边界编码序列编码值,将取得的Q2个底边界编码序列编码值依次拼接形成序列M2
将序列L2和序列M2拼接形成序列L2M2和序列M2L2,取序列L2M2和序列M2L2中较大者作为右下角编码序列V2
按序列值对左上角编码序列S2、右上角编码序列T2、左下角编码序列U2和右下角编码序列V2进行升序排序后,按序列值从小到大的顺序拼接左上角编码序列S2、右上角编码序列T2、左下角编码序列U2和右下角编码序列V2获得序列W2;拼接顶点和序列E2和序列W2得到序列Y2,序列Y2即为矩阵角编码;或
累加二值正方矩阵四个顶点的值,形成顶点和序列E3;其中,基准编码值为非零数值,非基准编码值为零;
用二值正方矩阵的行数除以二的商四舍五入得到长度Q3
将左边界编码序列从最高位起向最低位方向取Q3个左边界编码序列编码值,将取得的Q3个左边界编码序列编码值依次拼接形成序列F3
将顶边界编码序列从最高位起向最低位方向取Q3个顶边界编码序列编码值,将取得的Q3个顶边界编码序列编码值依次拼接形成序列G3
将序列F3和序列G3拼接形成序列F3G3和序列G3F3,取序列F3G3和序列G3F3中较小者作为左上角编码序列S3
将右边界编码序列从最高位起向最低位方向取Q3个右边界编码序列编码值,将取得的Q3个右边界编码序列编码值依次拼接形成序列H3
将顶边界编码序列从最低位起向最高位方向取Q3个顶边界编码序列编码值,将取得的Q3个顶边界编码序列编码值依次拼接形成序列I3
将序列H3和序列I3拼接形成序列H3I3和序列I3H3,取序列H3I3和序列I3H中较小者作为右上角编码序列T3
将左边界编码序列从最低位起向最高位方向取Q3个左边界编码序列编码值,将取得的Q3个左边界编码序列编码值依次拼接形成序列J3
将底边界编码序列从最高位起向最低位方向取Q3个底边界编码序列编码值,将取得的Q3个底边界编码序列编码值依次拼接形成序列K3
将序列J3和序列K3拼接形成序列J3K3和序列K3J3,取序列J3K3和序列K3J3中较小者作为左下角编码序列U3
将右边界编码序列从最低位起向最高位方向取Q3个右边界编码序列编码值,将取得的Q3个右边界编码序列编码值依次拼接形成序列L3
将底边界编码序列从最低位起向最高位方向取Q3个底边界编码序列编码值,将取得的Q3个底边界编码序列编码值依次拼接形成序列M3
将序列L3和序列M3拼接形成序列L3M3和序列M3L3,取序列L3M3和序列M3L3中较小者作为右下角编码序列V3
按序列值对左上角编码序列S3、右上角编码序列T3、左下角编码序列U3和右下角编码序列V3进行降序排序后,按序列值从大到小的顺序拼接左上角编码序列S3、右上角编码序列T3、左下角编码序列U3和右下角编码序列V3获得序列W3;拼接顶点和序列E3和序列W3得到序列Y3,序列Y3即为矩阵角编码;或
累加二值正方矩阵四个顶点的值,形成顶点和序列E4;其中,基准编码值为非零数值,非基准编码值为零;
用二值正方矩阵的行数除以二的商四舍五入得到长度Q4
将左边界编码序列从最高位起向最低位方向取Q4个左边界编码序列编码值,将取得的Q4个左边界编码序列编码值依次拼接形成序列F4
将顶边界编码序列从最高位起向最低位方向取Q4个顶边界编码序列编码值,将取得的Q4个顶边界编码序列编码值依次拼接形成序列G4
将序列F4和序列G4拼接形成序列F4G4和序列G4F4,取序列F4G4和序列G4F4中较小者作为左上角编码序列S4
将右边界编码序列从最高位起向最低位方向取Q4个右边界编码序列编码值,将取得的Q4个右边界编码序列编码值依次拼接形成序列H4
将顶边界编码序列从最低位起向最高位方向取Q4个顶边界编码序列编码值,将取得的Q4个顶边界编码序列编码值依次拼接形成序列I4
将序列H4和序列I4拼接形成序列H4I4和序列I4H4,取序列H4I4和序列I4H4中较小者作为右上角编码序列T4
将左边界编码序列从最低位起向最高位方向取Q4个左边界编码序列编码值,将取得的Q4个左边界编码序列编码值依次拼接形成序列J4
将底边界编码序列从最高位起向最低位方向取Q4个底边界编码序列编码值,将取得的Q4个底边界编码序列编码值依次拼接形成序列K4
将序列J4和序列K4拼接形成序列J4K4和序列K4J4,取序列J4K4和序列K4J4中较小者作为左下角编码序列U4
将右边界编码序列从最低位起向最高位方向取Q4个右边界编码序列编码值,将取得的Q4个右边界编码序列编码值依次拼接形成序列L4
将底边界编码序列从最低位起向最高位方向取Q4个底边界编码序列编码值,将取得的Q4个底边界编码序列编码值依次拼接形成序列M4
将序列L4和序列M4拼接形成序列L4M4和序列M4L4,取序列L4M4和序列M4L4中较小者作为右下角编码序列V4
按序列值对左上角编码序列S4、右上角编码序列T4、左下角编码序列U4和右下角编码序列V4进行升序排序后,按序列值从小到大的顺序拼接左上角编码序列S4、右上角编码序列T4、左下角编码序列U4和右下角编码序列V4获得序列W4;拼接顶点和序列E4和序列W4得到序列Y4,序列Y4即为矩阵角编码。
步骤3包括:比较多个二值正方矩阵的矩阵数据编码,包括矩阵边编码和矩阵角编码序列,判定具有相同矩阵数据编码的二值正方矩阵判为等价二值正方矩阵。
本发明等价二值正方矩阵识别***及其识别方法与传统旋转加翻转比较***及方法的对比,详见表1;
表1
Figure BDA0001590001560000181
Figure BDA0001590001560000191
表1中第一列R1表示正方矩阵的行数列数,第二列R2表示在该正方矩阵上放置的基准编码值的数量,第三列R3表示此情况下存在多少非等价的正方矩阵,第四列R4是此情况下本发明等价二值正方矩阵识别***及其识别方法所需存储的矩阵数据编码数量,第五列R5是此情况下传统旋转加翻转比较***及方法所需存储的特征矩阵数量。
通过实验比对发现,本发明等价二值正方矩阵识别***及其识别方法产生的非等价正方矩阵数量与传统旋转加翻转比较***及方法产生的非等价正方矩阵的数量相同,均为R3列所示数据。这显示了本发明等价二值正方矩阵识别***及其识别方法能有效识别等价及非等价正方矩阵。
另外,R4列数据始终与对应的R3列数据保持一致,而R5列数据始终是对应的R3列数据的八倍。再加上,基于矩阵数据编码产生方法可知,当正方矩阵的行数列数越大时,一个矩阵数据编码所需的存储空间比一个正方矩阵的所有等价矩阵所需的存储空间少得越多。所以,本发明等价二值正方矩阵识别***及其识别方法所需的存储空间相较于传统方法优势明显。此外,每当判定一个新输入的正方矩阵时,因需比对的数据量大大降低,故本发明等价二值正方矩阵识别***及其识别方法的速度也优于传统方法。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (4)

1.一种等价二值正方矩阵识别***,其特征在于,包括:
数据输入模块,用于输入二值正方矩阵数据;
数据编码模块,数据编码模块与数据输入模块连接,用于对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码;
数据比对模块,数据比对模块与数据编码模块连接,用于对生成的矩阵数据编码进行比对;
数据输出模块,数据输出模块与数据比对模块连接,用于输出矩阵数据编码的比对结果;
所述矩阵数据编码包括矩阵边编码和矩阵角编码;
对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码的步骤包括生成矩阵边编码的步骤:
获得二值正方矩阵的左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列;
对左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列进行排序,得到矩阵边编码;
获得二值正方矩阵的左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列的步骤包括:
以输入的二值正方矩阵数据之二值中的任意一个作为基准编码值;
按行累加二值正方矩阵数据的每一行中各个基准编码值所在列与二值正方矩阵最左列之间的列数差,并按序保存形成左边界编码序列;其中
左边界编码序列的长度为二值正方矩阵数据的行数,左边界编码序列的每个序列位为每行各个基准编码值所在列与二值正方矩阵最左列之间的列数差之和;左边界编码序列的首位为首行中各个基准编码值所在列与二值正方矩阵最左列之间的列数差之和,左边界编码序列的首位为左边界编码序列最高位;左边界编码序列的末位为末行中各个基准编码值所在列与二值正方矩阵最左列之间的列数差之和,左边界编码序列的末位为左边界编码序列最低位;
按行累加二值正方矩阵数据的每一行中各个基准编码值所在列与二值正方矩阵最右列之间的列数差,并按序保存形成右边界编码序列;其中
右边界编码序列的长度为二值正方矩阵数据的行数,右边界编码序列的每个序列位为每行各个基准编码值所在列与二值正方矩阵最右列之间的列数差之和;右边界编码序列的首位为首行中各个基准编码值所在列与二值正方矩阵最右列之间的列数差之和,右边界编码序列的首位为右边界编码序列最高位;右边界编码序列的末位为末行中各个基准编码所在列与二值正方矩阵最右列之间的列数差之和,右边界编码序列的末位为右边界编码序列最低位;
按列累加二值正方矩阵数据的每一列中各个基准编码值所在行与二值正方矩阵首行之间的行数差,并按序保存形成顶边界编码序列;其中
顶边界编码序列的长度为二值正方矩阵数据的列数,顶边界编码序列的每个序列位为每列各个基准编码值所在行与二值正方矩阵首行之间的行数差之和;顶边界编码序列的首位为首列中各个基准编码值所在行与二值正方矩阵首行之间的行数差之和,顶边界编码序列的首位为顶边界编码序列最高位;顶边界编码序列的末位为末列中各个基准编码值所在行与二值正方矩阵首行之间的行数差之和,顶边界编码序列的末位为顶边界编码序列最低位;
按列累加二值正方矩阵数据的每一列中各个基准编码值所在行与二值正方矩阵末行之间的行数差,并按序保存形成底边界编码序列;其中
底边界编码序列的长度为二值正方矩阵数据的列数,底边界编码序列的每个序列位为每列各个基准编码值所在行与二值正方矩阵末行之间的行数差之和;底边界编码序列的首位为首列中各个基准编码值所在行与二值正方矩阵末行之间的行数差之和,底边界编码序列的首位为底边界编码序列最高位;底边界编码序列的末位为末列中各个基准编码值所在行与二值正方矩阵末行之间的行数差之和,底边界编码序列的末位为底边界编码序列最低位;
对左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列进行排序,得到矩阵边编码;
对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码的步骤包括生成矩阵角编码的步骤:
累加二值正方矩阵四个顶点的值,形成顶点和序列;
获得左上角编码序列、右上角编码序列、左下角编码序列和右下角编码序列;
对左上角编码序列、右上角编码序列、左下角编码序列和右下角编码序列进行排序,得到矩阵角编码;
对生成的矩阵数据编码进行比对的步骤包括:
比较多个二值正方矩阵的矩阵数据编码,判定具有相同矩阵数据编码的二值正方矩阵判为等价二值正方矩阵。
2.一种等价二值正方矩阵识别方法,其特征在于,包括如下步骤:
输入二值正方矩阵数据;
对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码;
对生成的矩阵数据编码进行比对;
输出矩阵数据编码的比对结果;
所述矩阵数据编码包括矩阵边编码和矩阵角编码;
对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码的步骤包括生成矩阵边编码的步骤:
获得二值正方矩阵的左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列;
对左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列进行排序,得到矩阵边编码;
获得二值正方矩阵的左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列的步骤包括:
以输入的二值正方矩阵数据之二值中的任意一个作为基准编码值;
按行累加二值正方矩阵数据的每一行中各个基准编码值所在列与二值正方矩阵最左列之间的列数差,并按序保存形成左边界编码序列;其中
左边界编码序列的长度为二值正方矩阵数据的行数,左边界编码序列的每个序列位为每行各个基准编码值所在列与二值正方矩阵最左列之间的列数差之和;左边界编码序列的首位为首行中各个基准编码值所在列与二值正方矩阵最左列之间的列数差之和,左边界编码序列的首位为左边界编码序列最高位;左边界编码序列的末位为末行中各个基准编码值所在列与二值正方矩阵最左列之间的列数差之和,左边界编码序列的末位为左边界编码序列最低位;
按行累加二值正方矩阵数据的每一行中各个基准编码值所在列与二值正方矩阵最右列之间的列数差,并按序保存形成右边界编码序列;其中
右边界编码序列的长度为二值正方矩阵数据的行数,右边界编码序列的每个序列位为每行各个基准编码值所在列与二值正方矩阵最右列之间的列数差之和;右边界编码序列的首位为首行中各个基准编码值所在列与二值正方矩阵最右列之间的列数差之和,右边界编码序列的首位为右边界编码序列最高位;右边界编码序列的末位为末行中各个基准编码所在列与二值正方矩阵最右列之间的列数差之和,右边界编码序列的末位为右边界编码序列最低位;
按列累加二值正方矩阵数据的每一列中各个基准编码值所在行与二值正方矩阵首行之间的行数差,并按序保存形成顶边界编码序列;其中
顶边界编码序列的长度为二值正方矩阵数据的列数,顶边界编码序列的每个序列位为每列各个基准编码值所在行与二值正方矩阵首行之间的行数差之和;顶边界编码序列的首位为首列中各个基准编码值所在行与二值正方矩阵首行之间的行数差之和,顶边界编码序列的首位为顶边界编码序列最高位;顶边界编码序列的末位为末列中各个基准编码值所在行与二值正方矩阵首行之间的行数差之和,顶边界编码序列的末位为顶边界编码序列最低位;
按列累加二值正方矩阵数据的每一列中各个基准编码值所在行与二值正方矩阵末行之间的行数差,并按序保存形成底边界编码序列;其中
底边界编码序列的长度为二值正方矩阵数据的列数,底边界编码序列的每个序列位为每列各个基准编码值所在行与二值正方矩阵末行之间的行数差之和;底边界编码序列的首位为首列中各个基准编码值所在行与二值正方矩阵末行之间的行数差之和,底边界编码序列的首位为底边界编码序列最高位;底边界编码序列的末位为末列中各个基准编码值所在行与二值正方矩阵末行之间的行数差之和,底边界编码序列的末位为底边界编码序列最低位;
对左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列进行排序,得到矩阵边编码;
对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码的步骤包括生成矩阵角编码的步骤:
累加二值正方矩阵四个顶点的值,形成顶点和序列;
获得左上角编码序列、右上角编码序列、左下角编码序列和右下角编码序列;
对左上角编码序列、右上角编码序列、左下角编码序列和右下角编码序列进行排序,得到矩阵角编码;
对生成的矩阵数据编码进行比对的步骤包括:
比较多个二值正方矩阵的矩阵数据编码,判定具有相同矩阵数据编码的二值正方矩阵判为等价二值正方矩阵。
3.根据权利要求2所述的等价二值正方矩阵识别方法,其特征在于,对左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列进行排序,得到矩阵边编码的步骤包括:
获得序列A1,序列A1为左边界编码序列与该左边界编码序列的倒置序列中序列值较大的序列;
获得序列B1,序列B1为右边界编码序列与该右边界编码序列的倒置序列中序列值较大的序列;
获得序列C1,序列C1为顶边界编码序列与该顶边界编码序列的倒置序列中序列值较大的序列;
获得序列D1,序列D1为底边界编码序列与该底边界编码序列的倒置序列中序列值较大的序列;
按序列值对序列A1、序列B1、序列C1和序列D1进行降序排序后,按序列值从大到小的顺序拼接序列A1、序列B1、序列C1和序列D1获得序列X1,序列X1即为矩阵边编码;其中,高位序列位数值大的序列的整体序列值大;或
对左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列进行排序,得到矩阵边编码的步骤包括:
获得序列A2,序列A2为左边界编码序列与该左边界编码序列的倒置序列中序列值较大的序列;
获得序列B2,序列B2为右边界编码序列与该右边界编码序列的倒置序列中序列值较大的序列;
获得序列C2,序列C2为顶边界编码序列与该顶边界编码序列的倒置序列中序列值较大的序列;
获得序列D2,序列D2为底边界编码序列与该底边界编码序列的倒置序列中序列值较大的序列;
按序列值对序列A2、序列B2、序列C2和序列D2进行升序排序后,按序列值从小到大的顺序拼接序列A2、序列B2、序列C2和序列D2获得序列X2,序列X2即为矩阵边编码;其中,高位序列位数值大的序列的整体序列值大;或
对左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列进行排序,得到矩阵边编码的步骤包括:
获得序列A3,序列A3为左边界编码序列与该左边界编码序列的倒置序列中序列值较小的序列;
获得序列B3,序列B3为右边界编码序列与该右边界编码序列的倒置序列中序列值较小的序列;
获得序列C3,序列C3为顶边界编码序列与该顶边界编码序列的倒置序列中序列值较小的序列;
获得序列D3,序列D3为底边界编码序列与该底边界编码序列的倒置序列中序列值较小的序列;
按序列值对序列A3、序列B3、序列C3和序列D3进行降序排序后,按序列值从大到小的顺序拼接序列A3、序列B3、序列C3和序列D3获得序列X3,序列X3即为矩阵边编码;其中,高位序列位数值大的序列的整体序列值大;或
对左边界编码序列、右边界编码序列、顶边界编码序列和底边界编码序列进行排序,得到矩阵边编码的步骤包括:
获得序列A4,序列A4为左边界编码序列与该左边界编码序列的倒置序列中序列值较小的序列;
获得序列B4,序列B4为右边界编码序列与该右边界编码序列的倒置序列中序列值较小的序列;
获得序列C4,序列C4为顶边界编码序列与该顶边界编码序列的倒置序列中序列值较小的序列;
获得序列D4,序列D4为底边界编码序列与该底边界编码序列的倒置序列中序列值较小的序列;
按序列值对序列A4、序列B4、序列C4和序列D4进行升序排序后,按序列值从小到大的顺序拼接序列A4、序列B4、序列C4和序列D4获得序列X4,序列X4即为矩阵边编码;其中,高位序列位数值大的序列的整体序列值大。
4.根据权利要求2所述的等价二值正方矩阵识别方法,其特征在于,对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码的步骤包括生成矩阵角编码的步骤:
累加二值正方矩阵四个顶点的值,形成顶点和序列E1;其中,基准编码值为非零数值,非基准编码值为零;
用二值正方矩阵的行数除以二的商四舍五入得到长度Q1
将左边界编码序列从最高位起向最低位方向取Q1个左边界编码序列编码值,将取得的Q1个左边界编码序列编码值依次拼接形成序列F1
将顶边界编码序列从最高位起向最低位方向取Q1个顶边界编码序列编码值,将取得的Q1个顶边界编码序列编码值依次拼接形成序列G1
将序列F1和序列G1拼接形成序列F1G1和序列G1F1,取序列F1G1和序列G1F1中较大者作为左上角编码序列S1
将右边界编码序列从最高位起向最低位方向取Q1个右边界编码序列编码值,将取得的Q1个右边界编码序列编码值依次拼接形成序列H1
将顶边界编码序列从最低位起向最高位方向取Q1个顶边界编码序列编码值,将取得的Q1个顶边界编码序列编码值依次拼接形成序列I1
将序列H1和序列I1拼接形成序列H1I1和序列I1H1,取序列H1I1和序列I1H1中较大者作为右上角编码序列T1
将左边界编码序列从最低位起向最高位方向取Q1个左边界编码序列编码值,将取得的Q1个左边界编码序列编码值依次拼接形成序列J1
将底边界编码序列从最高位起向最低位方向取Q1个底边界编码序列编码值,将取得的Q1个底边界编码序列编码值依次拼接形成序列K1
将序列J1和序列K1拼接形成序列J1K1和序列K1J1,取序列J1K1和序列K1J1中较大者作为左下角编码序列U1
将右边界编码序列从最低位起向最高位方向取Q1个右边界编码序列编码值,将取得的Q1个右边界编码序列编码值依次拼接形成序列L1
将底边界编码序列从最低位起向最高位方向取Q1个底边界编码序列编码值,将取得的Q1个底边界编码序列编码值依次拼接形成序列M1
将序列L1和序列M1拼接形成序列L1M1和序列M1L1,取序列L1M1和序列M1L1中较大者作为右下角编码序列V1
按序列值对左上角编码序列S1、右上角编码序列T1、左下角编码序列U1和右下角编码序列V1进行降序排序后,按序列值从大到小的顺序拼接左上角编码序列S1、右上角编码序列T1、左下角编码序列U1和右下角编码序列V1获得序列W1;拼接顶点和序列E1和序列W1得到序列Y1,序列Y1即为矩阵角编码;或
对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码的步骤包括生成矩阵角编码的步骤:
累加二值正方矩阵四个顶点的值,形成顶点和序列E2;其中,基准编码值为非零数值,非基准编码值为零;
用二值正方矩阵的行数除以二的商四舍五入得到长度Q2
将左边界编码序列从最高位起向最低位方向取Q2个左边界编码序列编码值,将取得的Q2个左边界编码序列编码值依次拼接形成序列F2
将顶边界编码序列从最高位起向最低位方向取Q2个顶边界编码序列编码值,将取得的Q2个顶边界编码序列编码值依次拼接形成序列G2
将序列F2和序列G2拼接形成序列F2G2和序列G2F2,取序列F2G2和序列G2F2中较大者作为左上角编码序列S2
将右边界编码序列从最高位起向最低位方向取Q2个右边界编码序列编码值,将取得的Q2个右边界编码序列编码值依次拼接形成序列H2
将顶边界编码序列从最低位起向最高位方向取Q2个顶边界编码序列编码值,将取得的Q2个顶边界编码序列编码值依次拼接形成序列I2
将序列H2和序列I2拼接形成序列H2I2和序列I2H2,取序列H2I2和序列I2H中较大者作为右上角编码序列T2
将左边界编码序列从最低位起向最高位方向取Q2个左边界编码序列编码值,将取得的Q2个左边界编码序列编码值依次拼接形成序列J2
将底边界编码序列从最高位起向最低位方向取Q2个底边界编码序列编码值,将取得的Q2个底边界编码序列编码值依次拼接形成序列K2
将序列J2和序列K2拼接形成序列J2K2和序列K2J2,取序列J2K2和序列K2J2中较大者作为左下角编码序列U2
将右边界编码序列从最低位起向最高位方向取Q2个右边界编码序列编码值,将取得的Q2个右边界编码序列编码值依次拼接形成序列L2
将底边界编码序列从最低位起向最高位方向取Q2个底边界编码序列编码值,将取得的Q2个底边界编码序列编码值依次拼接形成序列M2
将序列L2和序列M2拼接形成序列L2M2和序列M2L2,取序列L2M2和序列M2L2中较大者作为右下角编码序列V2
按序列值对左上角编码序列S2、右上角编码序列T2、左下角编码序列U2和右下角编码序列V2进行升序排序后,按序列值从小到大的顺序拼接左上角编码序列S2、右上角编码序列T2、左下角编码序列U2和右下角编码序列V2获得序列W2;拼接顶点和序列E2和序列W2得到序列Y2,序列Y2即为矩阵角编码;或
对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码的步骤包括生成矩阵角编码的步骤:
累加二值正方矩阵四个顶点的值,形成顶点和序列E3;其中,基准编码值为非零数值,非基准编码值为零;
用二值正方矩阵的行数除以二的商四舍五入得到长度Q3
将左边界编码序列从最高位起向最低位方向取Q3个左边界编码序列编码值,将取得的Q3个左边界编码序列编码值依次拼接形成序列F3
将顶边界编码序列从最高位起向最低位方向取Q3个顶边界编码序列编码值,将取得的Q3个顶边界编码序列编码值依次拼接形成序列G3
将序列F3和序列G3拼接形成序列F3G3和序列G3F3,取序列F3G3和序列G3F3中较小者作为左上角编码序列S3
将右边界编码序列从最高位起向最低位方向取Q3个右边界编码序列编码值,将取得的Q3个右边界编码序列编码值依次拼接形成序列H3
将顶边界编码序列从最低位起向最高位方向取Q3个顶边界编码序列编码值,将取得的Q3个顶边界编码序列编码值依次拼接形成序列I3
将序列H3和序列I3拼接形成序列H3I3和序列I3H3,取序列H3I3和序列I3H中较小者作为右上角编码序列T3
将左边界编码序列从最低位起向最高位方向取Q3个左边界编码序列编码值,将取得的Q3个左边界编码序列编码值依次拼接形成序列J3
将底边界编码序列从最高位起向最低位方向取Q3个底边界编码序列编码值,将取得的Q3个底边界编码序列编码值依次拼接形成序列K3
将序列J3和序列K3拼接形成序列J3K3和序列K3J3,取序列J3K3和序列K3J3中较小者作为左下角编码序列U3
将右边界编码序列从最低位起向最高位方向取Q3个右边界编码序列编码值,将取得的Q3个右边界编码序列编码值依次拼接形成序列L3
将底边界编码序列从最低位起向最高位方向取Q3个底边界编码序列编码值,将取得的Q3个底边界编码序列编码值依次拼接形成序列M3
将序列L3和序列M3拼接形成序列L3M3和序列M3L3,取序列L3M3和序列M3L3中较小者作为右下角编码序列V3
按序列值对左上角编码序列S3、右上角编码序列T3、左下角编码序列U3和右下角编码序列V3进行降序排序后,按序列值从大到小的顺序拼接左上角编码序列S3、右上角编码序列T3、左下角编码序列U3和右下角编码序列V3获得序列W3;拼接顶点和序列E3和序列W3得到序列Y3,序列Y3即为矩阵角编码;或
对输入的二值正方矩阵数据进行编码处理,生成矩阵数据编码的步骤包括生成矩阵角编码的步骤:
累加二值正方矩阵四个顶点的值,形成顶点和序列E4;其中,基准编码值为非零数值,非基准编码值为零;
用二值正方矩阵的行数除以二的商四舍五入得到长度Q4
将左边界编码序列从最高位起向最低位方向取Q4个左边界编码序列编码值,将取得的Q4个左边界编码序列编码值依次拼接形成序列F4
将顶边界编码序列从最高位起向最低位方向取Q4个顶边界编码序列编码值,将取得的Q4个顶边界编码序列编码值依次拼接形成序列G4
将序列F4和序列G4拼接形成序列F4G4和序列G4F4,取序列F4G4和序列G4F4中较小者作为左上角编码序列S4
将右边界编码序列从最高位起向最低位方向取Q4个右边界编码序列编码值,将取得的Q4个右边界编码序列编码值依次拼接形成序列H4
将顶边界编码序列从最低位起向最高位方向取Q4个顶边界编码序列编码值,将取得的Q4个顶边界编码序列编码值依次拼接形成序列I4
将序列H4和序列I4拼接形成序列H4I4和序列I4H4,取序列H4I4和序列I4H4中较小者作为右上角编码序列T4
将左边界编码序列从最低位起向最高位方向取Q4个左边界编码序列编码值,将取得的Q4个左边界编码序列编码值依次拼接形成序列J4
将底边界编码序列从最高位起向最低位方向取Q4个底边界编码序列编码值,将取得的Q4个底边界编码序列编码值依次拼接形成序列K4
将序列J4和序列K4拼接形成序列J4K4和序列K4J4,取序列J4K4和序列K4J4中较小者作为左下角编码序列U4
将右边界编码序列从最低位起向最高位方向取Q4个右边界编码序列编码值,将取得的Q4个右边界编码序列编码值依次拼接形成序列L4
将底边界编码序列从最低位起向最高位方向取Q4个底边界编码序列编码值,将取得的Q4个底边界编码序列编码值依次拼接形成序列M4
将序列L4和序列M4拼接形成序列L4M4和序列M4L4,取序列L4M4和序列M4L4中较小者作为右下角编码序列V4
按序列值对左上角编码序列S4、右上角编码序列T4、左下角编码序列U4和右下角编码序列V4进行升序排序后,按序列值从小到大的顺序拼接左上角编码序列S4、右上角编码序列T4、左下角编码序列U4和右下角编码序列V4获得序列W4;拼接顶点和序列E4和序列W4得到序列Y4,序列Y4即为矩阵角编码。
CN201810185002.0A 2017-12-27 2018-03-06 等价二值正方矩阵识别***及其识别方法 Expired - Fee Related CN108549828B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2017114511203 2017-12-27
CN201711451120 2017-12-27

Publications (2)

Publication Number Publication Date
CN108549828A CN108549828A (zh) 2018-09-18
CN108549828B true CN108549828B (zh) 2021-02-19

Family

ID=63516334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810185002.0A Expired - Fee Related CN108549828B (zh) 2017-12-27 2018-03-06 等价二值正方矩阵识别***及其识别方法

Country Status (1)

Country Link
CN (1) CN108549828B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064840B (zh) * 2006-04-26 2010-11-03 日电(中国)有限公司 蛇形矩阵编码/解码器以及可视标志编码和呈现***
CN101149813B (zh) * 2007-07-13 2012-02-29 中兴通讯股份有限公司 一种矩阵式彩色二维条形码的编解码方法
CN102388610A (zh) * 2009-02-09 2012-03-21 三星电子株式会社 使用低复杂度频率变换的视频编码方法和设备以及视频解码方法和设备
CN103838649A (zh) * 2014-03-06 2014-06-04 中国科学院成都生物研究所 一种降低二进制编码存储***中计算量的方法
CN104243095A (zh) * 2014-09-11 2014-12-24 山东大学 一种卷积码与线性分组码的码字类型盲识别方法
CN104766351A (zh) * 2015-04-24 2015-07-08 惠仁望都医疗设备科技有限公司 一种mri超范围编码成像方法
CN106934441A (zh) * 2017-03-26 2017-07-07 袁昕喆 一种多维码及其编码和解码方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459430B (zh) * 2007-12-14 2010-12-08 中兴通讯股份有限公司 低密度生成矩阵码的编码方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064840B (zh) * 2006-04-26 2010-11-03 日电(中国)有限公司 蛇形矩阵编码/解码器以及可视标志编码和呈现***
CN101149813B (zh) * 2007-07-13 2012-02-29 中兴通讯股份有限公司 一种矩阵式彩色二维条形码的编解码方法
CN102388610A (zh) * 2009-02-09 2012-03-21 三星电子株式会社 使用低复杂度频率变换的视频编码方法和设备以及视频解码方法和设备
CN103838649A (zh) * 2014-03-06 2014-06-04 中国科学院成都生物研究所 一种降低二进制编码存储***中计算量的方法
CN104243095A (zh) * 2014-09-11 2014-12-24 山东大学 一种卷积码与线性分组码的码字类型盲识别方法
CN104766351A (zh) * 2015-04-24 2015-07-08 惠仁望都医疗设备科技有限公司 一种mri超范围编码成像方法
CN106934441A (zh) * 2017-03-26 2017-07-07 袁昕喆 一种多维码及其编码和解码方法

Also Published As

Publication number Publication date
CN108549828A (zh) 2018-09-18

Similar Documents

Publication Publication Date Title
US10657183B2 (en) Information processing apparatus, similarity search program, and similarity search method
Garcia et al. K-nearest neighbor search: Fast GPU-based implementations and application to high-dimensional feature matching
CN101253493B (zh) 在图形处理单元上训练卷积神经网络
US9292690B2 (en) Anomaly, association and clustering detection
CN111352656B (zh) 使用按位运算的神经网络设备和方法
US11715002B2 (en) Efficient data encoding for deep neural network training
CN108595710B (zh) 一种快速的海量图片去重方法
CN108334805B (zh) 检测文档阅读顺序的方法和装置
CN1131302A (zh) 进行串匹配的方法
CN112100982B (zh) Dna存储方法、***和存储介质
CN106558033A (zh) 基于形态学膨胀腐蚀算法的二值图像处理方法
CN110097581B (zh) 基于点云配准icp算法构建k-d树的方法
CN111626250A (zh) 文本图像的分行方法、装置、计算机设备及可读存储介质
CN108549828B (zh) 等价二值正方矩阵识别***及其识别方法
US9905020B2 (en) Method and circuitry for performing census transforms
CN105593876B (zh) 序列化流中的验证
CN210110352U (zh) 纠正NAND Flash中多比特错误的ECC装置
CN115035384B (zh) 数据处理方法、装置和芯片
CN112132150B (zh) 文本串识别方法、装置及电子设备
CN110569684B (zh) 一种小容量缓存的图像二值化方法
CN110648287B (zh) 盒式滤波器并行高效计算方法
CN108280502B (zh) 一种qr码容量提升方法及终端
CN113705784A (zh) 一种基于矩阵共享的神经网络权重编码方法及硬件***
US9530028B2 (en) Identifiers for mass serialization
TWI578240B (zh) 特徵描述方法及應用其之特徵描述器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210219

CF01 Termination of patent right due to non-payment of annual fee