具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并据实施例,对本发明的技术方案进行详细说明。
参见图1,图1是本发明实施例一动态二维码的生成和读取过程示意图,如图1所示,生成和读取过程包括以下步骤:
步骤101、动态二维码生成设备生成每帧二维码图像均承载对应于该帧二维码图像的显示频率信息的动态二维码。
本实施例中,在动态二维码的每帧二维码图像中承载对应于该帧二维码图像的显示频率信息,也即:生成动态二维码的每帧二维码图像的过程中,将对应于每帧二维码图像的显示频率信息和该帧二维码图像内容一起作为二维码承载信息参与该帧二维码图像的生成。这样,二维码读取设备在读取到动态二维码中任何一帧二维码图像后,均可以通过对该帧二维码图像进行图像处理和解码得到对应于该帧二维码图像的显示频率信息。
在实际应用中,为了提高动态二维码的安全性,动态二维码的显示频率是可变的,也即,动态二维码中不同二维码图像的显示频率可以是不相同的,例如,对于一个由20帧二维码图像构成的动态二维码中,前10帧二维码图像的显示频率为5帧/秒,后10帧二维码图像的显示频率为8帧/秒。
鉴于动态二维码的显示频率的可变性,在实际实现中,对应于动态二维码中每帧二维码图像的显示频率信息可以是该帧二维码图像的显示频率,也可以是动态二维码中所有二维码图像的显示频率。
以对应于动态二维码中每帧二维码图像的显示频率信息是该帧二维码图像的显示频率为例,假设需要生成一个共包含3帧二维码图像,且第1、2、3帧二维码图像的显示频率分别为5帧/秒、5秒/帧、10秒/帧的动态二维码,则,二维码生成设备生成该动态二维码的具体过程为:
1)将动态二维码内容划分为3份,假设该三份内容分别为A、B、C;
2)将第1份内容(A)和第1帧二维码图像的显示频率(5帧/秒)一起作为承载信息生成第一帧二维码图像;
3)将第2份内容(B)和第2帧二维码图像的显示频率(5帧/秒)一起作为承载信息生成第二帧二维码图像;
4)将第3份内容(C)和第3帧二维码图像的显示频率(5帧/秒)一起作为承载信息生成第三帧二维码图像。
至此,得到了每帧二维码图像均承载对应于该帧二维码图像的显示频率信息的动态二维码。
步骤102、动态二维码生成设备根据对应于动态二维码中每帧二维码图像的显示频率信息显示该帧二维码图像。
当对应于动态二维码中每帧二维码图像的显示频率信息是该帧二维码图像的显示频率时,根据对应于动态二维码中每帧二维码图像的显示频率信息显示该帧二维码图像的方法为:以动态二维码中该帧二维码图像的显示频率显示该帧二维码图像。
当对应于每帧二维码图像的显示频率信息为动态二维码中所有二维码图像的显示频率时,根据对应于动态二维码中每帧二维码图像的显示频率信息显示该帧二维码图像的方法为:根据动态二维码中所有二维码图像的显示频率确定该帧二维码图像的显示频率,以该帧二维码图像的显示频率显示该帧二维码图像。
步骤103、动态二维码读取设备读取动态二维码中相邻的两帧二维码图像并确定相邻两帧二维码图像中的第二的显示起始时刻,对该第二帧二维码图像进行图像处理,对经图像处理后的二维码图像进行解码得到对应于该第二帧二维码图像的显示频率信息。
动态二维码读取设备可以获取在显示顺序上相邻(也可以说是连续)的两帧二维码图像,并根据图像变化判断第二帧开始(也即第二帧的显示起始时刻)或者第一帧结束(也即第一帧的显示结束时刻),进行对齐。获取动态二维码中相邻两帧二维码图像,并根据图像变化判断第二帧开始或者第一帧结束的方法,是工程实现的问题,现有技术中有很多方法可以实现,因为不是本发明的重点,因此在此不予详述。
二维码读取设备读取到动态二维码中的任何一帧二维码图像后,都可以通过对该帧二维码图像进行图像处理和解码,得到该帧二维码图像承载的信息,在本实施例中,每帧二维码承载的信息包括二维码内容(动态二维码内容的全部或部分,由具体采用的动态二维码技术确定)、以及对应于该帧二维码图像的显示频率信息。
步骤104、动态二维码读取设备根据该第二帧二维码图像的显示起始时刻和对应于该第二帧二维码图像的显示频率信息读取动态二维码中剩余尚未读取的所有二维码图像。
当获取动态二维码中某一帧二维码图像的显示起始时刻以及对应于该帧二维码图像的显示频率信息后,就可以确定与该帧二维码图像相邻的下一帧二维码图像的显示起始时刻,在该显示起始时刻读取(扫描)动态二维码,就会得到下一帧二维码图像。
对应于动态二维码中每帧二维码图像的显示频率信息具体包含的内容不同,本步骤的实现方法也不相同,其中,
当对应于动态二维码中每帧二维码图像的显示频率信息为该帧二维码图像的显示频率时,二维码读取设备根据该第二帧二维码图像的显示起始时刻和该第二帧二维码图像的显示频率信息读取动态二维码中剩余尚未读取的所有二维码图像的方法具体为:
将该第二帧二维码图像作为当前二维码图像,并执行以下循环操作:
根据当前二维码图像的显示频率和当前二维码图像的显示起始时刻确定下一帧二维码图像的显示起始时刻,在下一帧二维码图像的显示起始时刻读取下一帧二维码图像,对下一帧二维码图像进行图像处理,并对经图像处理后的二维码图像进行解码得到对应于下一帧二维码图像的显示频率信息,如果尚未读取完动态二维码中的所有二维码图像,则将下一帧二维码图像作为当前二维码图像,并再次执行循环操作,否则,结束循环操作;
其中,假设动态二维码中共包括N帧二维码图像,当前二维码图像为动态二维码图像中的第X帧二维码图像,则下一帧二维码图像为(X+1)%N。
当对应于每帧二维码图像的显示频率信息为动态二维码中所有二维码图像的显示频率时,根据该第二帧二维码图像的显示起始时刻和该第二帧二维码图像的显示频率信息读取动态二维码中尚未读取的所有二维码图像的方法具体为:
将该第二帧二维码图像作为当前二维码图像,并执行以下循环操作:
根据动态二维码中所有二维码图像的显示频率确定当前二维码图像的显示频率,根据当前二维码图像的显示频率和当前二维码图像的显示起始时刻确定下一帧二维码图像的显示起始时刻,在下一帧二维码图像的显示起始时刻读取下一帧二维码图像,如果尚未读取完动态二维码中的所有二维码图像,则将下一帧二维码图像作为当前二维码图像,并再此执行循环操作,否则,结束循环操作;
其中,假设动态二维码中共包括N帧二维码图像,当前二维码图像为动态二维码图像中的第X帧二维码图像,则下一帧二维码图像为(X+1)%N。
由于二维码生成设备是根据动态二维码的显示频率信息显示动态二维码,当二维码读取设备也根据动态二维码的显示频率信息读取动态二维码时,二者的显示频率和读取频率保持一致,不会出现漏读二维码图像帧或读取到冗余的二维码图像帧。
在实际应用中,动态二维码的每帧二维码图像中,通常携带有该帧二维码图像的帧编号,以及动态二维码中包含的二维码图像总帧数,根据已经读取的所有二维码图像中的帧编号和动态二维码中包含的二维码图像总帧数,可以确定是否已经读取完动态二维码中的所有二维码图像。
参见图2,图1是本发明实施例二动态二维码的生成和读取过程示意图,如图2所示,生成和读取过程包括以下步骤:
步骤201、动态二维码生成设备生成每帧二维码图像均承载对应于该帧二维码图像的显示频率信息的动态二维码。
步骤202、动态二维码生成设备根据对应于动态二维码中每帧二维码图像的显示频率信息显示该帧二维码图像。
步骤201-202与实施例一中的步骤101-102相同,不再赘述。
步骤203、动态二维码读取设备以自身的读取频率读取动态二维码中的一帧二维码图像。
本实施例适用于读取频率不可改变的动态二维码读取设备,这种动态二维码读取设备只能以自身固有的读取频率读取动态二维码。
步骤204、动态二维码读取设备对该帧二维码图像进行图像处理,对经图像处理后的该帧二维码图像进行解码。
当二维码读取设备的读取频率高于动态二维码的显示频率时,在读取的多帧二维码图像帧会出现内容相同的二维码图像,这些内容相同的二维码图像为冗余的二维码图像。
因此,对一帧二维码图像进行图像处理时,还可进一步通过与此前读取到的二维码图像进行比较,进而判断该帧二维码图像是否是冗余的二维码图像。其中,对于按时间顺序读取到的N帧相同的二维码图像,第1帧二维码图像为原始二维码图像,第2帧至第N帧二维码图像为冗余的二维码图像。假设二维码读取装置连续读取到6帧二维码图像,其中,第2、3帧二维码图像相同,第4、5、6帧二维码图像相同,则第一帧二维码图像是原始二维码图像,无冗余二维码图像;在第2、3帧二维码图像中,第2帧二维码图像是原始二维码图像,第3帧二维码图像是冗余二维码图像;在第4、5、6帧二维码图像中,第4帧二维码图像是原始二维码图像,第5、6帧二维码图像是冗余二维码图像。
在实际实现中,由于动态二维码显示的图像是随时间变化的,二维码读取装置读取到的二维码图像可能是不清晰的,图像不清晰可能导致解码失败或错误,因此,当读取到的二维码图像不清晰导致解码失败时,如果存在对应的冗余二维码图像,则可以利用冗余二维码图像和图像增强算法对该二维码图像进行优化得到清晰的二维码图像(这里,所述清晰的二维码图像帧是指,能够保证对动态二维码成功解码的二维码图像帧),然后利用这些清晰的二维码图像帧进行解码,从而可以避免因读取的二维码图像帧不清晰而造成的解码失败或错误。
本实施例中,对经图像处理后的该帧二维码图像进行解码的方法为:如果该帧二维码图像不是冗余二维码图像,将该帧二维码图像作为原始二维码图像并对经图像处理后的该帧二维码图像进行解码,若解码成功,则执行步骤205,若解码失败,则返回到步骤203;如果该帧二维码图像是冗余二维码图像,则若该帧二维码图像对应的原始二维码图像已解码成功,则删除该帧二维码图像并执行步骤205,若该帧二维码图像对应的原始二维码图像已解码失败,则利用该帧二维码图像和图像增强算法对该帧二维码图像对应的原始二维码图像进行优化,对优化后的原始二维码图像进行解码,解码成功则删除该帧二维码图像并执行步骤205,解码失败则将优化后的原始二维码图像作为原始二维码图像,删除该帧二维码图像并再次返回步骤203。
步骤205、动态二维码读取设备判断是否已经读取完动态二维码中的所有二维码图像,如果是,则执行步骤206,否则,返回步骤203。
在实际应用中,动态二维码的每帧二维码图像中,通常携带有该帧二维码图像的帧编号,以及动态二维码中包含的二维码图像总帧数,根据已经读取的所有二维码图像中的帧编号和动态二维码中包含的二维码图像总帧数,可以确定是否已经读取完动态二维码中的所有二维码图像。
步骤206、动态二维码读取设备结束动态二维码读取过程。
以上以两个实施例对本发明生成和读取动态二维码的过程进行了详细说明,基于以上过程说明,本发明提供了一种动态二维码生成方法和两种动态二维码读取方法,下面结合图3、4、5进行说明。
参见图3,图3是本发明实施例动态二维码生成方法流程图,应用于动态二维码生成装置,如图3所示,该方法包括以下步骤:
步骤301、生成每帧二维码图像均承载对应于该帧二维码图像的显示频率信息的动态二维码。
步骤302、根据对应于动态二维码中每帧二维码图像的显示频率信息显示该帧二维码图像。
图3所示方法中,
对应于每帧二维码图像的显示频率信息包括:该帧二维码图像的显示频率;
根据对应于动态二维码中每帧二维码图像的显示频率信息显示该帧二维码图像的方法为:以动态二维码中该帧二维码图像的显示频率显示该帧二维码图像。
图3所示方法中,
对应于每帧二维码图像的显示频率信息包括:动态二维码中所有二维码图像的显示频率;
根据对应于动态二维码中每帧二维码图像的显示频率信息显示该帧二维码图像的方法为:根据动态二维码中所有二维码图像的显示频率确定该帧二维码图像的显示频率,以该帧二维码图像的显示频率显示该帧二维码图像。
参见图4,图4是本发明实施例一动态二维码读取方法流程图,应用于动态二维码读取装置,所述动态二维码的每帧二维码图像中均承载有对应于该帧二维码图像的显示频率信息;如图4所示,该方法包括以下步骤:
步骤401、读取动态二维码中相邻的两帧二维码图像并确定两帧二维码图像中第二帧二维码图像的显示起始时刻。
步骤402、对该第二帧二维码图像进行图像处理,并对经图像处理后的二维码图像进行解码得到对应于该第二帧二维码图像的显示频率信息。
步骤403、根据该第二帧二维码图像的显示起始时刻和对应于该第二帧二维码图像的显示频率信息读取动态二维码中剩余尚未读取的所有二维码图像。
图4所示方法中,
对应于每帧二维码图像的显示频率信息包括:该帧二维码图像的显示频率;
根据该第二帧二维码图像的显示起始时刻和该第二帧二维码图像的显示频率信息读取动态二维码中尚未读取的所有二维码图像的方法为:
将该第二帧二维码图像作为当前二维码图像,并执行以下循环操作:
根据当前二维码图像的显示频率和当前二维码图像的显示起始时刻确定下一帧二维码图像的显示起始时刻,在下一帧二维码图像的显示起始时刻读取下一帧二维码图像,对下一帧二维码图像进行图像处理,并对经图像处理后的二维码图像进行解码得到对应于下一帧二维码图像的显示频率信息,如果尚未读取完动态二维码中的所有二维码图像,则将下一帧二维码图像作为当前二维码图像,并再次执行循环操作,否则,结束循环操作;
其中,假设动态二维码中共包括N帧二维码图像,当前二维码图像为动态二维码图像中的第X帧二维码图像,则下一帧二维码图像为(X+1)%N。
图4所示方法中,
对应于每帧二维码图像的显示频率信息包括:动态二维码中所有二维码图像的显示频率;
根据该第二帧二维码图像的显示起始时刻和该第二帧二维码图像的显示频率信息读取动态二维码中尚未读取的所有二维码图像的方法为:
将该第二帧二维码图像作为当前二维码图像,并执行以下循环操作:
根据动态二维码中所有二维码图像的显示频率确定当前二维码图像的显示频率,根据当前二维码图像的显示频率和当前二维码图像的显示起始时刻确定下一帧二维码图像的显示起始时刻,在下一帧二维码图像的显示起始时刻读取下一帧二维码图像,如果尚未读取完动态二维码中的所有二维码图像,则将下一帧二维码图像作为当前二维码图像,并再此执行循环操作,否则,结束循环操作;
其中,假设动态二维码中共包括N帧二维码图像,当前二维码图像为动态二维码图像中的第X帧二维码图像,则下一帧二维码图像为(X+1)%N。
参见图5,图5是本发明实施例二动态二维码读取方法流程图,应用于动态二维码读取装置,所述动态二维码的每帧二维码图像中均承载有对应于该帧二维码图像的显示频率信息;如图5所示,该方法包括以下步骤:
步骤501、以动态二维码读取装置的读取频率读取动态二维码中的一帧二维码图像。
步骤502、对该帧二维码图像进行图像处理,对经图像处理后的该帧二维码图像进行解码。
步骤503、判断是否读取完动态二维码中的所有二维码图像,是则结束动态二维码过程,否则,返回步骤501继续执行循环。
图5所示方法中,
对该帧二维码图像进行图像处理时,进一步确定该帧二维码图像是否为冗余的二维码图像;
对经图像处理后的该帧二维码图像进行解码包括:如果该帧二维码图像不是冗余二维码图像,将该帧二维码图像作为原始二维码图像并对经图像处理后的该帧二维码图像进行解码,若解码成功,则执行步骤503,若解码失败,则返回步骤501;如果该帧二维码图像是冗余二维码图像,则若该帧二维码图像对应的原始二维码图像已解码成功,则删除该帧二维码图像并执行步骤503,若该帧二维码图像对应的原始二维码图像已解码失败,则利用该帧二维码图像和图像增强算法对该帧二维码图像对应的原始二维码图像进行优化,对优化后的原始二维码图像进行解码,解码成功则删除该帧二维码图像并执行步骤503,解码失败则将优化后的原始二维码图像作为原始二维码图像,删除该帧二维码图像并返回步骤501。
本发明还提供了一种动态二维码生成装置和两种动态二维码读取装置,下面结合图6、7、8进行说明。
参见图6,图6是本发明实施例动态二维码生成装置的结构示意图,如图6所示,该装置包括:生成单元601、显示单元602;其中,
生成单元601,用于生成每帧二维码图像均承载对应于该帧二维码图像的显示频率信息的动态二维码;
显示单元602,用于根据对应于动态二维码中每帧二维码图像的显示频率信息显示该帧二维码图像。
图6所示装置中,
对应于每帧二维码图像的显示频率信息包括:该帧二维码图像的显示频率;
所述显示单元602根据对应于动态二维码中每帧二维码图像的显示频率信息显示该帧二维码图像时,用于:以动态二维码中该帧二维码图像的显示频率显示该帧二维码图像。
图6所示装置中,
对应于每帧二维码图像的显示频率信息包括:动态二维码中所有二维码图像的显示频率;
所述显示单元602根据对应于动态二维码中每帧二维码图像的显示频率信息显示该帧二维码图像时,用于:根据动态二维码中所有二维码图像的显示频率确定该帧二维码图像的显示频率,以该帧二维码图像的显示频率显示该帧二维码图像。
参见图7,图7是本发明实施例一动态二维码读取装置的结构示意图,所述动态二维码的每帧二维码图像中均承载有对应于该帧二维码图像的显示频率信息;该装置包括:第一读取单元701、图像处理单元702、解码单元703、第二读取单元704;其中,
第一读取单元701,用于读取动态二维码中相邻的两帧二维码图像并确定两帧二维码图像中第二帧二维码图像的显示起始时刻;
图像处理单元702,用于对相邻两帧二维码图像中的第二帧二维码图像进行图像处理;
解码单元703,用于对经图像处理后的该第二帧二维码图像进行解码得到对应于该第二帧二维码图像的显示频率信息;
第二读取单元704,用于根据该第二帧二维码图像的显示起始时刻和对应于该第二帧二维码图像的显示频率信息读取动态二维码中剩余尚未读取的所有二维码图像。
所述第二读取单元根据该第二帧二维码图像的显示起始时刻和对应于该第二帧二维码图像的显示频率信息读取动态二维码中尚未读取的所有二维码图像时,用于:
将该第二帧二维码图像作为当前二维码图像,并执行以下循环操作:
根据当前二维码图像的显示频率和当前二维码图像的显示起始时刻确定下一帧二维码图像的显示起始时刻,在下一帧二维码图像的显示起始
图7所示装置中,
对应于每帧二维码图像的显示频率信息包括:该帧二维码图像的显示频率;
所述第二读取单元704根据该第二帧二维码图像的显示起始时刻和对应于该第二帧二维码图像的显示频率信息读取动态二维码中尚未读取的所有二维码图像时,用于:
将该第二帧二维码图像作为当前二维码图像,并执行以下循环操作:
根据当前二维码图像的显示频率和当前二维码图像的显示起始时刻确定下一帧二维码图像的显示起始时刻,在下一帧二维码图像的显示起始时刻读取下一帧二维码图像,指示图像处理单元702对下一帧二维码图像进行图像处理,并指示解码单元703对经图像处理后的二维码图像进行解码得到对应于下一帧二维码图像的显示频率信息,如果尚未读取完动态二维码中的所有二维码图像,则将下一帧二维码图像作为当前二维码图像,并再次执行循环操作,否则,结束循环操作;
其中,假设动态二维码中共包括N帧二维码图像,当前二维码图像为动态二维码图像中的第X帧二维码图像,则下一帧二维码图像为(X+1)%N。
图7所示装置中,
对应于每帧二维码图像的显示频率信息包括:动态二维码中所有二维码图像的显示频率;
所述第二读取单元704根据该该第二帧二维码图像的显示起始时刻和对应于该第二帧二维码图像的显示频率信息读取动态二维码中尚未读取的所有二维码图像时,用于:
将该第二帧二维码图像作为当前二维码图像,并执行以下循环操作:
根据动态二维码中所有二维码图像的显示频率确定当前二维码图像的显示频率,根据当前二维码图像的显示频率和当前二维码图像的显示起始时刻确定下一帧二维码图像的显示起始时刻,在下一帧二维码图像的显示起始时刻读取下一帧二维码图像,如果尚未读取完动态二维码中的所有二维码图像,则将下一帧二维码图像作为当前二维码图像,并再此执行循环操作,否则,结束循环操作;
其中,假设动态二维码中共包括N帧二维码图像,当前二维码图像为动态二维码图像中的第X帧二维码图像,则下一帧二维码图像为(X+1)%N。
参见图8,图8是本发明实施例二动态二维码读取装置的结构示意图,所述动态二维码的每帧二维码图像中均承载有对应于该帧二维码图像的显示频率信息;该装置包括:读取单元801、图像处理单元802、解码单元803;其中,
读取单元801,用于以动态二维码读取装置的读取频率读取动态二维码中的一帧二维码图像;用于根据解码单元803的指示,以二维码读取装置的读取频率读取动态二维码中的一帧二维码图像;
图像处理单元802,用于对读取单元801读取的每帧二维码图像进行图像处理;
解码单元803,用于图像处理单元802对读取单元读取的每帧二维码图像进行图像处理后,对经图像处理后的该帧二维码图像进行解码,如果读取单元801尚未读取完动态二维码中的所有二维码图像,则指示读取单元801继续读取二维码图像。
图8所示装置中,
所述图像处理单元802,对读取单元801读取的每帧二维码图像进行图像处理时,进一步确定该帧二维码图像是否为冗余的二维码图像;
所述解码单元803对经图像处理单元802进行图像处理后的每帧二维码图像进行解码包括:如果该帧二维码图像不是冗余二维码图像,将该帧二维码图像作为原始二维码图像并对经图像处理后的该帧二维码图像进行解码,若解码成功,则继续执行判断读取单元801是否读取完动态二维码中的所有二维码图像的操作,若解码失败,则指示读取单元801继续读取二维码图像;如果该帧二维码图像是冗余二维码图像,则若该帧二维码图像对应的原始二维码图像已解码成功,则删除该帧二维码图像并继续执行判断读取单元801是否读取完动态二维码中的所有二维码图像的操作,若该帧二维码图像对应的原始二维码图像已解码失败,则利用该帧二维码图像和图像增强算法对该帧二维码图像对应的原始二维码图像进行优化,对优化后的原始二维码图像进行解码,解码成功则删除该帧二维码图像并继续执行判断读取单元801是否读取完动态二维码中的所有二维码图像的操作,解码失败则将优化后的原始二维码图像作为原始二维码图像,删除该帧二维码图像并指示读取单元801继续读取二维码图像。
综上所述,本发明中,通过为动态二维码中的不同二维码图像设置不同显示频率,使得动态二维码生成设备在显示动态二维码的过程中显示频率不断变化,可以进一步提高动态二维码的安全性。另外,对于动态二维码读取设备来说,可以通过携带在动态二维码的每帧二维码图像中的显示频率信息自适应的调整自身的读取频率,从而可以保证动态二维码显示频率和读取频率一致。而且,对于读取频率不可变的二维码读取设备来说,也可以通过对动态二维码的图像处理确定出冗余的二维码图像,进而基于图像处理结果进行解码得到二维码内容。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。