一种基于哈希算法的自动感应触发方法及其系统与流程

文档序号:16882416发布日期:2019-02-15 22:18阅读:288来源:国知局
一种基于哈希算法的自动感应触发方法及其系统与流程

本发明涉及一种图像的自动感应触发方法及其系统,具体地说涉及一种基于哈希算法的自动感应触发方法及其系统。



背景技术:

条形码是由宽度不同、反射率不同的条和空,按照一定的编码规则(码制)编制成的,用以表达一组数字或字母符号信息的图形标识符。为了阅读出条形码所代表的信息,需要一套条形码识别系统,它由条形码扫描器、放大整形电路、译码接口电路和计算机系统等部分组成,即使用条码阅读机(条码扫描器又叫条码扫描枪或条码阅读器)扫描,得到一组反射光信号,此信号经光电转换后变为一组与线条、空白相对应的电子讯号,经解码后还原为相应的文数字,再传入电脑。条形码技术具有输入速度快、可靠性高、采集信息量大、灵活实用等优点。

现有技术中,在设备对条码识别之前,为了防止触发重复的自动感应,通常都会添加条码图像预处理,传统的预处理一般是计算整张图像的灰度平均值,当灰度平均值发生变化时则认为与上一次识别处理的图像不是同一张图像,进而触发自动感应装置对当前图像进行解码操作。这一处理方法具有很大的缺陷,就是当条码图像保持静止不变,而周围光照环境发生一定变化,条码图像的灰度平均值会发生明显变化,因此将图像灰度平均值作为自动感应的参数对光照环境不具有鲁棒性。



技术实现要素:

为此,本发明所要解决的技术问题在于现有技术使用平均灰度值计算不能减少外界环境光的干扰。

为解决上述技术问题,本发明的才有以下技术方案:

技术方案一:

一种基于哈希算法的自动感应触发方法,包括以下步骤:

s1:获取一帧条码图像并将其转化为yuv颜色编码模式,其中,取y通道的数值作为条码图像的灰度值。

s2:将所述条码图像尺寸缩小为a乘b个像素大小的图像,并计算所有像素y通道的数值的平均值作为所述一帧条码图像平均灰度值g,其中a、b为整数。

s3:计算所述一帧条码图像平均灰度值g与上一帧已解码条码图像平均灰度值g’的差值,并与第一预设阈值t1做比较,当平均灰度值差值不超过第一预设阀值t1时,则不触发解码;当平均灰度值差值超过第一预设阀值t1,则进行下一步;所述第一预设阈值t1阈值范围为2至5。

s4:将s2步骤获取的每个像素y通道的数值依次与平均灰度值g进行比对,大于平均灰度值g的像素标记为1,小于或等于平均灰度值g的像素标记为0,并将每个像素的标记值依次排序组成一长度为a乘b的数字串。

s5:对所述数字串进行二进制转换十六进制得到所述帧图像的哈希值h。

s6:计算所述帧图像的哈希值h与上一帧已解码图像的哈希值h’的汉明距离。

s7:将汉明距离与第二预设阈值t2作比较,当汉明距离超过第二预设阈值t2,则触发解码,并存储所述一帧条码图像的平均灰度值g和哈希值h,用作一下次比对;当汉明距离不超过第二预设阈值t2,则不触发解码;所述第二预设阈值t2的阈值范围为2至5。

s2步骤中,采用双线性插值法对所述条码图像进行尺寸缩小处理。

s5步骤中,对所述数字串进行二进制转换十六进制得到所述帧图像的哈希值h具体方法为:将所述数字串每4个数字分为一组,对每4组数字进行二进制转十六进制编码,转化为十六进制字符串,即为所述帧图像的哈希值h。

s6步骤中,计算所述一帧条码图像的哈希值h与上一帧已解码条码图像的哈希值h’位置相同但数值不同的字符数量,记为汉明距离。

所述第一预设阈值t1,第二预设阈值t2与图像拍摄设备的像素级别成正相关,当所述图像拍摄设备的像素级别越高,所述第一预设阈值t1与第二预设阈值t2数值越高。

技术方案二:

一种基于哈希算法的自动感应触发系统,包括摄像头,存储器和处理器,所述摄像头用以拍摄图像,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:

摄像头获取一帧条码图像并将其转化为yuv颜色编码模式,其中,取y通道的数值作为条码图像的灰度值。

将所述条码图像尺寸缩小为a乘b个像素大小的图像,并计算所有像素y通道的数值的平均值作为所述一帧条码图像平均灰度值g,其中a、b为整数。

计算所述一帧条码图像平均灰度值g与上一帧已解码条码图像平均灰度值g’的差值,并与第一预设阈值t1做比较,当平均灰度值差值不超过第一预设阀值t1时,则不触发解码;当平均灰度值差值超过第一预设阀值t1,则进行下一步;所述第一预设阈值t1阈值范围为2至5。

将缩小图像后获取的每个像素y通道的数值依次与平均灰度值g进行比对,大于平均灰度值g的像素标记为1,小于或等于平均灰度值g的像素标记为0,并将每个像素的标记值依次排序组成一长度为a乘b的数字串。

对所述数字串进行二进制转换十六进制得到所述帧图像的哈希值h。

计算所述帧图像的哈希值h与上一帧已解码图像的哈希值h’的汉明距离。

将汉明距离与第二预设阈值t2作比较,当汉明距离超过第二预设阈值t2,则触发解码,并存储所述一帧条码图像的平均灰度值g和哈希值h,用作一下次比对;当汉明距离不超过第二预设阈值t2,则不触发解码;所述第二预设阈值t2的阈值范围为2至5。

处理器采用双线性插值法对所述条码图像进行尺寸缩小处理。

对所述数字串进行二进制转换十六进制得到所述帧图像的哈希值h具体方法为:将所述数字串每4个数字分为一组,对每4组数字进行二进制转十六进制编码,转化为十六进制字符串,即为所述帧图像的哈希值h。

计算所述一帧条码图像的哈希值h与上一帧已解码条码图像的哈希值h’位置相同但数值不同的字符数量,记为汉明距离。

所述第一预设阈值t1,第二预设阈值t2与图像拍摄设备的像素级别成正相关,当所述图像拍摄设备的像素级别越高,所述第一预设阈值t1与第二预设阈值t2数值越高。

本发明具有如下有益效果:

1、本发明的一种基于哈希算法的自动感应触发方法及其系统,对条码图像进行yuv颜色编码模式转换,取y通道的亮度灰度值作为运算基础,相比于传统颜色编码模式,对环境亮度的表达更准确。

2、本发明的一种基于哈希算法的自动感应触发方法及其系统,将哈希图像相似度算法加入条码图像预处理操作中,改善了光照变化对设备自动感应带来的影响,当条码图像保持静止不变,而周围光照环境发生一定变化,此时条码图像的灰度平均值会发生明显变化,但由于光照变化前后条码图像的汉明距离小于设定阈值,则设备可判断为是同一张图像,不会发生设备上自动感应装置的误触发。

3、本发明的一种基于哈希算法的自动感应触发方法及其系统,采用双线性插值法处理图像和哈希值比对算法,处理速度快,精度高。

4、本发明的一种基于哈希算法的自动感应触发方法及其系统,根据不同设备的图像像素预设不同缩小模板数值和比对阈值,保障更换设备的处理精度不变。

附图说明

图1为现有技术的自动感应触发方法流程图。

图2为本发明一种基于感知哈希算法的自动感应触发方法流程图。

图3为本发明一个实施例的原始图像。

图4为本发明一个实施例的经过yuv编码转化和图像缩小预处理的图像。

具体实施方式

下面结合附图和具体实施例来对本发明进行详细的说明。

实施例一

请参阅图2,一种基于哈希算法的自动感应触发方法,包括以下步骤:

s1:获取一帧条码图像并将其转化为yuv颜色编码模式,其中,取y通道的数值作为条码图像的灰度值。

yuv是一种颜色编码方法,常使用在各个视频处理组件中。yuv在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。“y”表示明亮度(luminance、luma),“u”和“v”则是色度、浓度(chrominance、chroma)。一般摄像设备拍摄的图像为rgb模式,rgb转yuv模式可通过常用的算法模板直接进行转换。

s2:将所述条码图像尺寸缩小为a乘b个像素大小的图像,并计算所有像素y通道的数值的平均值作为所述一帧条码图像平均灰度值g,其中a、b为整数。a与b可以相同。

本实施例中,摄像设备像素等级为640x480,根据前期的多次测试计算,此等级对应的最佳模板a与b的数值为8,所以将图像缩小为8x8的图像,并计算64像素的平均灰度值。

s3:计算所述一帧条码图像平均灰度值g与上一帧已解码条码图像平均灰度值g’的差值,并与第一预设阈值t1做比较,当平均灰度值差值不超过第一预设阀值t1时,则不触发解码;当平均灰度值差值超过第一预设阀值t1,则进行下一步;所述第一预设阈值t1阈值范围为2至5。

系统存储上一帧已解码图像的平均灰度值g’以供每次判断使用,当产生新的解码图像时,自动取代上一帧已解码图像。本实施例中,因为摄像设备像素等级为640x480,第一预设阈值t1为3。

s4:将s2步骤获取的每个像素y通道的数值依次与平均灰度值g进行比对,大于平均灰度值g的像素标记为1,小于或等于平均灰度值g的像素标记为0,并将每个像素的标记值依次排序组成一长度为a乘b的数字串。排序方法为从左至右从上至下。

本实施例中,64个像素的标记值组成一长度为64的数字串,1111111111111111110000111000001110000011110000111100000000000000。

s5:对所述数字串进行二进制转换十六进制得到所述帧图像的哈希值h。

s6:计算所述帧图像的哈希值h与上一帧已解码图像的哈希值h’的汉明距离。

系统存储上一帧已解码图像的哈希值h’以供每次判断使用,当产生新的解码图像时,自动取代上一帧已解码图像。

汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,以d(x,y)表示两个字x,y之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。

s7:将汉明距离与第二预设阈值t2作比较,当汉明距离超过第二预设阈值t2,则触发解码,并存储所述一帧条码图像的平均灰度值g和哈希值h,用作一下次比对;当汉明距离不超过第二预设阈值t2,则不触发解码;所述第二预设阈值t2的阈值范围为2至5。

s2步骤中,采用双线性插值法对所述条码图像进行尺寸缩小处理。

在图像的放大和缩小的过程中,需要计算新图像像素点在原图的位置,如果计算的位置不是整数,就需要用到图像的内插,我们需要寻找在原图中最近得像素点赋值给新的像素点,这种方法很简单是最近邻插法,这种方法好理解、简单,但是不实用,会产生是真现象,产生棋盘格效应,更实用的方法就是双线性内插。双线性插值,又称为双线性内插。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。双线性插值作为数值分析中的一种插值算法,广泛应用在信号处理,数字图像和视频处理等方面。

s5步骤中,对所述数字串进行二进制转换十六进制得到所述帧图像的哈希值h具体方法为:将所述数字串每4个数字分为一组,对每4组数字进行二进制转十六进制编码,转化为十六进制字符串,即为所述帧图像的哈希值h。

在本实施例中,64位的二进制数字串转化为长度为16的十六进制字符串,得到图像的哈希值h,“ffffc38383c3c3e7”。

s6步骤中,计算所述一帧条码图像的哈希值h与上一帧已解码条码图像的哈希值h’位置相同但数值不同的字符数量,记为汉明距离。

本实施例中,当前图像的哈希值h为“ffffc38383c3c3e7”,上一帧已解码图像的哈希值h’为“fff3fbe1e181c3ff”,依次比对,有11个位置的字符不一样,则汉明距离是11。

字符不同个数越少,即汉明距离越小,两图像的相似程度越高。将计算出的汉明距离与第二预设阈值t2做比较,若该汉明距离不超过预设阈值t2;则不触发自动感应,若该汉明距离超过预设阈值t2,则认为当前图像与上一帧已解码图像不是相似图像,触发自动感应进行解码操作。在本实施例中,因为摄像设备像素等级为640x480,第二预设阈值t2为3。

所述第一预设阈值t1,第二预设阈值t2与图像拍摄设备的像素级别成正相关,当所述图像拍摄设备的像素级别越高,t1与t2数值越高。根据前期多次测试得到的结果,t1和t2的取值在2-5之间。

本发明的一种基于哈希算法的自动感应触发方法及其系统,对条码图像进行yuv颜色编码模式转换,取y通道的亮度灰度值作为运算基础,相比于传统颜色编码模式,对环境亮度的表达更准确。将哈希图像相似度算法加入条码图像预处理操作中,改善了光照变化对设备自动感应带来的影响,当条码图像保持静止不变,而周围光照环境发生一定变化,此时条码图像的灰度平均值会发生明显变化,但由于光照变化前后条码图像的汉明距离小于设定阈值,则设备可判断为是同一张图像,不会发生设备上自动感应装置的误触发。

实施例二

一种基于哈希算法的自动感应触发系统,包括摄像头,存储器和处理器,所述摄像头用以拍摄图像,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:

摄像头获取一帧条码图像并将其转化为yuv颜色编码模式,其中,取y通道的数值作为条码图像的灰度值。

将所述条码图像尺寸缩小为a乘b个像素大小的图像,并计算所有像素y通道的数值的平均值作为所述一帧条码图像平均灰度值g,其中a、b为整数。a与b可以相同。

本实施例中,摄像设备像素等级为640x480,根据前期的多次测试计算,此等级对应的最佳模板a与b的数值为8,所以将图像缩小为8x8的图像,并计算64像素的平均灰度值。

计算所述一帧条码图像平均灰度值g与上一帧已解码条码图像平均灰度值g’的差值,并与第一预设阈值t1做比较,当平均灰度值差值不超过第一预设阀值t1时,则不触发解码;当平均灰度值差值超过第一预设阀值t1,则进行下一步;所述第一预设阈值t1阈值范围为2至5。

系统存储上一帧已解码图像的平均灰度值g’以供每次判断使用,当产生新的解码图像时,自动取代上一帧已解码图像。本实施例中,因为摄像设备像素等级为640x480,预设阈值t1为3。

将缩小图像后获取的每个像素y通道的数值依次与平均灰度值g进行比对,大于平均灰度值g的像素标记为1,小于或等于平均灰度值g的像素标记为0,并将每个像素的标记值依次排序组成一长度为a乘b的数字串。

本实施例中,64个像素的标记值组成一长度为64的数字串1111111111111111110000111000001110000011110000111100000000000000。

对所述数字串进行二进制转换十六进制得到所述帧图像的哈希值h。

计算所述帧图像的哈希值h与上一帧已解码图像的哈希值h’的汉明距离。

系统存储上一帧已解码图像的哈希值h’以供每次判断使用,当产生新的解码图像时,自动取代上一帧已解码图像。

汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,以d(x,y)表示两个字x,y之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。

将汉明距离与第二预设阈值t2作比较,当汉明距离超过第二预设阈值t2,则触发解码,并存储所述一帧条码图像的平均灰度值g和哈希值h,用作一下次比对;当汉明距离不超过第二预设阈值t2,则不触发解码;所述第二预设阈值t2的阈值范围为2至5。

处理器采用双线性插值法对所述条码图像进行尺寸缩小处理。

在图像的放大和缩小的过程中,需要计算新图像像素点在原图的位置,如果计算的位置不是整数,就需要用到图像的内插,我们需要寻找在原图中最近得像素点赋值给新的像素点,这种方法很简单是最近邻插法,这种方法好理解、简单,但是不实用,会产生是真现象,产生棋盘格效应,更实用的方法就是双线性内插。双线性插值,又称为双线性内插。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。双线性插值作为数值分析中的一种插值算法,广泛应用在信号处理,数字图像和视频处理等方面。

将所述数字串每4个数字分为一组,对每4组数字进行二进制转十六进制编码,转化为十六进制字符串,即为所述帧图像的哈希值h。

在本实施例中,64位的二进制数字串转化为长度为16的十六进制字符串,得到图像的哈希值h,“ffffc38383c3c3e7”。

计算所述帧图像的哈希值h与上一帧已解码图像的哈希值h’位置相同但数值不同的字符数量,记为汉明距离。

本实施例中,当前图像的哈希值h为“ffffc38383c3c3e7”,上一帧已解码图像的哈希值h’为“fff3fbe1e181c3ff”,依次比对,有11个位置的字符不一样,则汉明距离是11。

字符不同个数越少,即汉明距离越小,两图像的相似程度越高。将计算出的汉明距离与预设阈值t2做比较,若该汉明距离不超过预设阈值t2;则不触发自动感应,若该汉明距离超过预设阈值t2,则认为当前图像与上一帧已解码图像不是相似图像,触发自动感应进行解码操作。在本实施例中,因为摄像设备像素等级为640x480,预设阈值t2为3。

所述第一预设阈值t1,第二预设阈值t2与图像拍摄设备的像素级别成正相关,当所述图像拍摄设备的像素级别越高,所述第一预设阈值t1与第二预设阈值t2数值越高。

本发明采用的技术方案对条码图像进行yuv颜色编码模式转换,取y通道的亮度灰度值作为运算基础,相比于传统颜色编码模式,对环境亮度的表达更准确。将哈希图像相似度算法加入条码图像预处理操作中,改善了光照变化对设备自动感应带来的影响,当条码图像保持静止不变,而周围光照环境发生一定变化,此时条码图像的灰度平均值会发生明显变化,但由于光照变化前后条码图像的汉明距离小于设定阈值,则设备可判断为是同一张图像,不会发生设备上自动感应装置的误触发。采用双线性插值法处理图像和哈希值比对算法,处理速度快,精度高。根据不同设备的图像像素级别预设不同缩小模板数值和比对阈值,保障更换设备的处理精度不变。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1