发明内容
针对现有技术存在的问题,本发明的主要目的在于提供一种数据量小、存储速度快、访问方便的机器视觉检测结果的存储文件及方法。
为实现上述目的,本发明提供了一种机器视觉检测结果的存储文件,用于存储机器视觉检测后的检测结果。该机器视觉检测结果的存储文件包含一个图像数据文件和一个图像列表文件,该图像数据文件包含一张以上图像的压缩后的图像数据和针对该图像数据的检测结果数据,该每一张图像的检测结果数据紧跟着存储在对应的压缩后的图像数据的后面,该图像列表文件包括文件头信息和图像集基本信息,该文件头信息是对所有图像数据进行压缩的依据,而该文件头信息仅仅包含量化表和哈夫曼表,省略了普通JPEG图像中除了量化表和哈夫曼表之外的其它文件头信息,且针对所有的待压缩的图像数据只保存一次文件头信息。另外,该图像列表文件还包含图像数据文件中存储的所有压缩后的图像数据和检测结果数据的位置信息,具体的说,压缩后的图像数据的位置信息是指压缩后的图像数据在图像数据文件中的起始地址和数据长度,检测结果数据在图像数据文件中的位置信息是指检测结果数据在图像数据文件中的起始地址和数据长度。另外,该图像列表文件还包含图像数据文件中存储的所有图像数据的宽度和高度信息。
本发明还提供了一种机器视觉检测结果的存储方法,用于存储机器视觉检测后的检测结果,该存储方法包含如下步骤:
(1)创建一个图像列表文件和一个图像数据文件;
(2)将作为待存储的图像数据进行压缩的依据的文件头信息保存在图像列表文件中,且针对所有的待压缩的图像数据只保存一次文件头信息,该文件头信息仅仅包含量化表和哈夫曼表,省略了普通JPEG图像中除了量化表和哈夫曼表之外的其它文件头信息,而该量化表是通过输入压缩后图像数据需达到的质量因子来建立的;
(3)将待存储的图像数据根据图像列表文件中保存的文件头信息进行压缩;
(4)将压缩后的图像数据存储在图像数据文件中;
(5)在图像列表文件中记录当前存储的压缩后的图像数据在图像数据文件中的位置信息,该图像列表文件记录的压缩后的图像数据在图像数据文件中的位置信息是指压缩后的图像数据在图像数据文件中的起始地址和数据长度,另外,图像列表文件还记录图像数据文件中存储的所有图像数据的宽度和高度信息;
(6)将机器视觉检测后的检测结果数据紧跟着保存在当前存储的压缩后的图像数据的后面,压缩后的图像数据和检测结果数据构成对当前检测图像的存储;
(7)在图像列表文件中记录当前存储的检测结果数据在图像数据文件中的位置信息,该检测结果数据在图像数据文件中的位置信息是指检测结果数据在图像数据文件中的起始地址和数据长度;
(8)判断磁盘的剩余空间是否能存储下一幅图像;
(9)如有剩余空间存储下一幅图像,则继续对下一幅待存储的图像数据进行压缩;否则,写上文件结束标志,结束图像的保存。
将待存储的图像数据根据图像列表文件中保存的文件头信息进行压缩包含如下步骤:
(1)将图像数据划分为多个8×8的矩阵,不足8的倍数的按8的倍数用0补齐;
(2)对每一个8×8的矩阵作余弦变换,得到一个频率系数矩阵;
(3)对余弦变换后的频率系数进行数据量化;
(4)对量化后的图像数据进行编码即得到压缩后的图像数据。
另外,当待存储的图像数据为灰度图像时,则将待存储的图像数据进行压缩时,仅仅对灰度图像的Y值进行压缩,可大大提高图像数据的压缩速度。
与现有技术相比,本发明的有益效果在于:(1)数据量小:所有图像经过压缩之后保存在一个图像数据文件中,因此数据量很小;(2)存储速度快、安全性高:在处理灰度图像时,数据压缩时间仅需压缩同样数据量的JPEG格式数据约1/3的时间,防止了在高速图像存储中用JPEG压缩方式发生掉图的情况。(3)普通的JPEG图像在存储时,针对每一张图像都需保存一次文件头信息,本发明在存储图像数据时,省略了一些JPEG的文件头信息,如省略了图像识别信息、压缩率等,并且相同的文件头信息如量化表、哈夫曼表,针对所有图像只保存一次,适当的减少了文件的大小,而通过对图像数据进行压缩后再进行保存,则大大的减少了文件的数据量,方便用户使用;(4)访问快速:通过创建一个图像数据文件和一个记录有压缩后的图像数据和检测结果数据基本信息的列表文件,将所有图像数据和检测数据都存储在一起,可以方便数据拷贝和检测数据传输,也可以实现检测结果数据跟随检测对像走,便于有针对性地快速查看文件。并且由于只需通过一个图像列表文件就可找到所需要的图像数据和检测结果数据,也大大提高了访问的速度和方便性。
具体实施方式
下面结合附图,详细说明本发明的具体实施方式。
如图1所示,为现有技术中JPEG(Joint Photographic Experts Group)图像的结构图。JPEG(Joint Photographic Experts Group)是由国际标准组织(ISO:International Standardization Organization)和国际电话电报咨询委员会(CCITT:Consultation Commitee of the International Telephone and Telegraph)为静态图像所建立的一个国际数字图像压缩标准。经过JPEG压缩标准压缩的JPEG图像10包括文件头12和压缩后的图像数据14两部分,其中文件头12包括图像识别信息121、量化表122、哈夫曼表123、压缩率124和图像基本信息125等等。其中量化表122是根据输入的质量因子来建立的,输入的质量因子越大,则图像压缩后的压缩率124越高。而图像基本信息125包括图像数据的宽度1251、高度1252等。
下面通过JPEG的压缩步骤来具体说明文件头12中包括的这些字段的作用。JPEG压缩具体包括如下步骤:
(1)颜色转换:由于JPEG只支持YUV(Y表示灰度值,U、V表示色度)颜色模式的数据结构,而不支持RGB(Red,Green,Blue)图像的数据结构,所以在将彩色图像进行压缩之前,必须将RGB模式的图像转换为YUV模式的图像,如果是灰度图,则不需要该步骤。转换完成之后还需要进行数据采样。一般采用的采样比例是2∶1∶1或4∶2∶2。在进行了采样工作之后,每两行数据只保留一行。因此,采样后图像数据量将压缩为原来的一半。
(2)DCT变换。DCT(Discrete Consine Transform,离散余弦变换)是将图像信号在频率域上进行变换,分离出高频和低频信息的处理过程。然后再对图像的高频部分进行压缩,以达到压缩图像数据的目的。首先将图像划分为多个8×8的矩阵,然后对每一个矩阵作DCT变换,变换后得到一个频率系数矩阵,其中的频率系数都是浮点数。
(3)量化。对变换后的频率系数进行量化,将之转换为整数。根据输入的质量因子来建立量化表122,质量因子的选取与压缩后的图像质量及压缩率124有着密切的关系。质量因子的值选得过大,可以大幅度提高压缩率124,但是图像质量就比较差;反之,质量因子越小,图像质量越好,但是压缩率124越低。
(4)编码。前面的DCT变换和量化是为编码阶段做准备。编码采用两种机制:一是0值的行程长度编码;二是熵编码(Entropy Coding),编码完成后即完成图像的压缩。
本发明的机器视觉检测结果的存储文件,用于存储机器视觉检测后的检测结果。该机器视觉检测结果的存储文件包含一个图像数据文件40和一个图像列表文件20。
如图4所示,为本发明机器视觉检测结果存储文件的图像数据文件40的结构图。该图像数据文件40包含一张或一张以上的图像,如图4所示,包含【第1图像】、【第2图像】......【第n图像】,图像的数量由每张图像的大小和磁盘的大小共同决定,所有的图像都存储在一个图像数据文件40中。每张图像都包括压缩后的图像数据14和检测结果数据41,该存储的图像数据经过压缩,压缩方式可以与普通JPEG的压缩方式相同。特点是,每一张图像的检测结果数据41紧跟着存储在对应的压缩后的图像数据14的后面,以方便查询。需要指出的是,该图像数据文件40中存储的压缩后的图像数据14并不包含如普通JPEG图像中所包含的量化表122、哈夫曼表123等文件头信息。
如图2所示,为本发明机器视觉检测结果存储文件的图像列表文件20结构图。该图像列表文件20包含文件起始标志21、量化表122、哈夫曼表123、图像集基本信息22及文件结束标志23。针对图像数据文件40中的所有图像,只保存一次由量化表122、哈夫曼表123组成的文件头信息,量化表122是通过输入压缩后图像需达到的质量因子来建立,该输入的质量因子决定着图像的压缩率和压缩质量,这些信息都为对图像数据进行压缩来提供依据的。值得注意的是,这里的图像列表文件20保存的文件头信息仅仅包含量化表122和哈夫曼表123,而省略了普通JPEG图像中除了量化表122和哈夫曼表123之外的其它文件头信息。而对于图像数据文件40中的每一张图像,分别建立图像基本信息125,如图4所示,包括【第1图像的图像基本信息125】、【第2图像的图像基本信息125】......,直到【第n图像的图像基本信息125】,共同组成图像集基本信息22。
如图3所示,为图像列表文件20的图像基本信息125的结构图。每张图像的图像基本信息125都包含图像数据的宽度1251、图像数据的高度1252,还包括压缩后的图像数据14和检测结果数据41在图像数据文件40中存储的位置信息。该压缩后的图像数据14在图像数据文件40中的位置信息包含压缩后的图像数据14在图像数据文件40中的起始地址1253及压缩后的图像数据的数据长度1254;同样,检测结果数据41在图像数据文件40中的位置信息包含检测结果数据41在图像数据文件40中的起始地址1255及检测结果数据41的数据长度1256。根据图像列表文件20保存的压缩后的图像数据14和检测结果数据41在图像数据文件40中存储的位置信息即可找到需查询图像在图像数据文件40中的位置。
如图5所示,为本发明机器视觉检测结果的存储方法流程图,具体包括如下步骤:
S51、创建一个图像列表文件20和一个图像数据文件40;
S52、将作为待存储的图像数据进行压缩的依据的文件头信息保存在图像列表文件20中,且针对所有的待压缩的图像数据只保存一次文件头信息。文件头信息包括量化表122和哈夫曼表123,该量化表122是通过输入压缩后图像需达到的质量因子来建立,在建立量化表122后再生成哈夫曼表123,之后再将量化表122和哈夫曼表123保存在图像列表文件20中。值得注意的是,这里的图像列表文件20保存的文件头信息仅仅包含量化表122和哈夫曼表123,而省略了普通JPEG图像中除了量化表122和哈夫曼表123之外的其它文件头信息;
S53、将待存储的图像数据根据图像列表文件20中保存的文件头信息进行压缩。具体包括如下步骤:首先,将图像数据划分为多个8×8的矩阵,不足8的倍数的按8的倍数用0补齐;其次,对每一个矩阵作余弦变换,得到一个频率系数矩阵;再次,对余弦变换后的频率系数进行数据量化;最后,对量化后的图像数据进行编码,如果图像数据是彩色的,则首先还需要将RGB图像转换为YUV图像。值得注意的是,如果针对灰度图像,则与普通的JPG压缩方式存在一些差别。使用普通的JPG压缩方式对灰度图像进行压缩时,首先将灰度图像变成YUV(Y表示灰度值,U、V表示色度)格式,变化之后其中的Y就是灰度值数据。而针对灰度图像,U和V值都是0。普通的JPG压缩方式不仅对Y值进行压缩,还要对U和V的数据值分别进行压缩。但在本发明的高速机器视觉***中,在对灰度图像进行压缩时,因为灰度图像中的U和V值均是0,如果对其进行压缩处理,不仅浪费时间,而且还占用空间来存储压缩后的数据。因此在本发明的灰度图压缩方法中,仅仅对Y(灰度值)进行压缩处理,直接舍弃U和V值。通过实验证明,这种压缩方法的压缩速度仅为原来的三分之一,且压缩后的数据量也减小了。
S54、将压缩后的图像数据14存储在图像数据文件40中;
S55、在图像列表文件20中记录下当前存储的图像的压缩后的图像数据14的基本信息,包括图像数据的宽度1251、图像数据的高度1252、压缩后的图像数据14在图像数据文件40中的起始地址1253和压缩后的图像数据的数据长度1254;
S56、将机器视觉***处理后的检测结果数据41紧跟着保存在当前存储的压缩后的图像数据14的后面,压缩后的图像数据14和检测结果数据41构成对当前检测图像的存储;
S57、在图像列表文件20中记录下存储的图像的检测结果数据41在图像数据文件40中的起始位置1255以及检测结果数据41的数据长度1256;
S58、判断磁盘的剩余空间是否能存储下一幅图像,如果还能存储下一幅图像,则至S53,否则,至S59;
S59、写上文件结束标志,结束图像的保存。
当使用如图5所示的机器视觉检测结果的存储方法存储文件后,如图6所述,为本发明访问机器视觉检测结果存储文件的流程图,具体包括如下步骤:
S61、打开图像列表文件20和图像数据文件40;
S62、根据图像列表文件20中保存的图像的压缩后的图像数据14的起始地址1253和数据长度1254找到需查询图像的压缩后的图像数据14在图像数据文件40中的位置;
S63、从图像数据文件40中读出需查询的图像的压缩后的图像数据14;
S64、将图像中的压缩后的图像数据14解压缩,恢复压缩前的图像数据;
S65、根据图像列表文件20保存的图像的检测结果数据41的起始地址1255和数据长度1256找到需查询图像的检测结果数据41在图像数据文件40中的位置;
S66、从图像数据文件40中读出图像的检测结果数据41,最终得到需查询图像的图像数据和检测结果数据41。
以上介绍了机器视觉检测结果的存储文件及方法,可以使存储的文件数据量变小、存储速度加快且方便访问。但本发明并不限定于以上实施例,任何未脱离本发明技术方案,即仅仅对其进行本领域普通技术人员所知悉的改进或变更,均属于本发明的保护范围之内。