发明内容
基于此,本发明提供了一种产品图片分组方法和一种产品图片分组装置。
一种产品图片分组方法,包括以下步骤:
获取包含各种产品的产品图片的文件列表;其中,在所述文件列表中,所述产品图片包括产品条码图片和产品实物图片,各种产品的产品图片数目均不少于预设值,同一种产品的产品图片连续排列,并且各个产品条码图片均位于其所属产品的产品图片序列的顶部或者均位于底部;
遍历所述产品图片的文件列表,识别产品图片中的产品条码;如果在所述文件列表的当前识别位置识别到产品条码,则将当前识别位置在所述文件列表中移动所述预设值个位置并继续识别,如果在当前识别位置识别不到产品条码,则将当前识别位置在所述文件列表中移动一个位置并继续识别;
根据识别出的所述各种产品的产品条码,将同一种产品的产品图片分为一组。
与一般技术相比,本发明产品图片分组方法获取预设了拍摄顺序和每种产品最小拍摄张数的产品图片文件列表之后,对各种产品的产品条码进行识别,在识别过程中减少了待识别产品图片的数量。可采用计算机实现对产品条码的识别,根据识别出的所述各种产品的产品条码,将同一种产品的产品图片分为一组。本发明保证了产品图片识别和图片分组过程中的准确性,同时大大提高了分组效率,节约了人工成本。
作为其中一个实施例,所述预设值大于或者等于2。
作为其中一个实施例,在所述获取包含各种产品的产品图片的文件列表的步骤之前,包括以下步骤:
按照文件名对所述产品图片进行升序或者降序排序,生成所述文件列表。
作为其中一个实施例,所述遍历所述产品图片的文件列表,识别产品图片中的产品条码的步骤,包括以下步骤:
当按照自底部向顶部的顺序遍历所述文件列表时,如果在当前识别位置识别到产品条码,则将当前识别位置在所述文件列表中上移所述预设值个位置并继续识别,如果在当前识别位置识别不到产品条码,则将当前识别位置在所述文件列表中上移一个位置并继续识别;
当按照自顶部向底部的顺序遍历所述文件列表时,如果在当前识别位置识别到产品条码,则将当前识别位置在所述文件列表中下移所述预设值个位置并继续识别,如果在当前识别位置识别不到产品条码,则将当前识别位置在所述文件列表中下移一个位置并继续识别。
作为其中一个实施例,在所述识别到产品条码的步骤之后,包括以下步骤:
记录识别到的产品条码的条码值。
作为其中一个实施例,所述识别产品图片中的产品条码的步骤,包括以下步骤:
如果产品图片文件列表中一个位置上的产品条码无法识别,则接收用户输入的对该位置补录的产品条码信息。
作为其中一个实施例,在所述识别产品图片中的产品条码的步骤之后,包括以下步骤:
根据用户输入的校验清单对识别出的所述各种产品的产品条码进行校验。
一种产品图片分组装置,包括获取模块、识别模块和分组模块;
所述获取模块,用于获取包含各种产品的产品图片的文件列表;其中,在所述文件列表中,所述产品图片包括产品条码图片和产品实物图片,各种产品的产品图片数目均不少于预设值,同一种产品的产品图片连续排列,并且各个产品条码图片均位于其所属产品的产品图片序列的顶部或者均位于底部。
所述识别模块,用于遍历所述产品图片的文件列表,识别产品图片中的产品条码;如果在所述文件列表的当前识别位置识别到产品条码,则将当前识别位置在所述文件列表中移动所述预设值个位置并继续识别,如果在当前识别位置识别不到产品条码,则将当前识别位置在所述文件列表中移动一个位置并继续识别;
所述分组模块,用于根据识别出的所述各种产品的产品条码,将同一种产品的产品图片分为一组。
与一般技术相比,本发明产品图片分组装置获取预设了拍摄顺序和每种产品最小拍摄张数的产品图片文件列表之后,对各种产品的产品条码进行识别,在识别过程中减少了待识别产品图片的数量。可采用计算机实现对产品条码的识别,根据识别出的所述各种产品的产品条码,将同一种产品的产品图片分为一组。本发明保证了产品图片识别和图片分组过程中的准确性,同时大大提高了分组效率,节约了人工成本。
作为其中一个实施例,还包括补录模块;
如果产品图片文件列表中一个位置上的产品条码无法识别,则所述补录模块用于接收用户输入的对该位置补录的产品条码信息。
作为其中一个实施例,还包括校验模块;
所述校验模块用于在识别产品图片中的产品条码之后,根据用户输入的校验清单对识别出的所述各种产品的产品条码进行校验。
具体实施方式
为更进一步阐述本发明所采取的技术手段及取得的效果,下面结合附图及较佳实施例,对本发明的技术方案,进行清楚和完整的描述。
请参阅图1,为本发明产品图片分组方法的流程示意图。本发明产品图片分组方法,包括以下步骤:
S101获取包含各种产品的产品图片的文件列表;其中,在所述文件列表中,所述产品图片包括产品条码图片和产品实物图片,各种产品的产品图片数目均不少于预设值,同一种产品的产品图片连续排列,并且各个产品条码图片均位于其所属产品的产品图片序列的顶部或者均位于底部。
S102遍历所述产品图片的文件列表,识别产品图片中的产品条码;如果在所述文件列表的当前识别位置识别到产品条码,则将当前识别位置在所述文件列表中移动所述预设值个位置并继续识别,如果在当前识别位置识别不到产品条码,则将当前识别位置在所述文件列表中移动一个位置并继续识别;
S103根据识别出的所述各种产品的产品条码,将同一种产品的产品图片分为一组。
在步骤S101中,预先设定每种产品拍摄图片的顺序为是先拍产品实物后拍产品条码或者先拍产品条码后拍产品实物,同一批拍摄中,只能以上述一种拍摄顺序。
预先设置每种产品拍摄图片的最少张数,例如一批拍摄中某些产品拍摄了4张,另一些是6张或者8张时,那么最小分图基数预设为4。
作为其中一个实施例,所述预设值大于或者等于2。即最小拍摄张数不小于2,其中1张为产品条码图片,其余则为产品实物图片。
作为其中一个实施例,在所述获取包含各种产品的产品图片的文件列表的步骤之前,包括以下步骤:
按照文件名对所述产品图片进行升序或者降序排序,生成所述文件列表。
读取拍摄图片的文件列表,按文件名进行升序或降序排序,拍摄图片时按照各种产品分别进行拍摄,先拍摄完一款产品后,再拍摄另一款产品。每种产品包括多张图片,其中包括产品条码图片和产品实物图片。这样拍摄所产生的图片文件名将按照各种产品的顺序进行排列,每种产品的图片其文件名互相靠近,不会产生文件名的跳跃。经过排序之后,后续的识别过程可顺序执行,提高了效率。
在步骤S102中,调用外部识别程序,自底部或顶部开始遍历排序好的图片文件列表来识别产品条码。同时,利用调度程序对产品条码识别程序遍历各个产品图片进行调度。所述外部识别程序负责解析产品图片中含有的条形码,为第三方程序。除此之外,还可采用各种识别方法,对产品条码进行识别。
当按照自底部向顶部或者自顶向底的顺序遍历所述文件列表时,当识别的第一个文件位置无法识别产品条码,则跳到顶部或底部,按自顶部向底部或自底部向顶部的顺序遍历所述文件列表。
在对一维条码进行识别时,首先读入文件,然后进行图像处理。
上述图像处理的步骤包括中值滤波、阀值分割和二值化;
中值滤波:中值滤波是一种非线形信号处理方法,由于条码图片是列的形式,所以采用改进的5个点采样窗口,取一列上的5个点。扫描整幅图片,对窗口内的像素点按像素值大小排序,最后取中间值代替窗口内所有像素点的原始像素值。
阀值分割:阀值可以是预先设置的。
二值化:首先,对图片的灰度值进行统计,其次再求阈值,最后根据求得的阈值,将图片转换为像素值只有0,1的黑白图片,以方便进一步分析。阈值的选取,采用的是大律法。其原理为,取某个灰度值,以它为分界将图像分为灰度值大小两类,分别计算这两类中的像素点数及灰度平均值。然后计算它们的类间方差,取方差最大值对应的灰度为阈值。
图像处理之后进行条码识别,包括边沿检测和码字识别两个步骤。
边沿检测:这里的边缘检测,不是检测图片的边缘,而是查找一块比较适合条码识别的区域,并将这块区域的上下边界回传给它的主调函数。
采用的方法是依次扫描图片的每一行,求取每一行中的黑点个数;
统计有黑点的行的数量;
求出图片中所有的黑点数;
求出平均每行的黑点数(总黑点数除以有黑点的行数);
判断一个行是否适合于识别,判定的规范是:如果一行和它的下一行比较相差的黑点个数在5个以内,而且这一行的黑点个数比每行的平均数的75%多,则认为这一行可以用于识别;
找到条形码用于识别的上下边缘,通过以上方法,扫描图片,得到每行是否适合用于识别(用0和1标记)。寻找最佳的识别范围则是通过扫描图片的每一行,查找一定范围内的可以用于识别的行数大于某个值时,这个范围即可以作为最佳的识别区域。如果没有找到,则认为图片严重受损,不能用于识别;
码字识别又分垂直投影、计算宽度和码字识别三个步骤。
垂直投影:同水平投影一样,先求每一列的黑点个数(在已经找到的上下边界范围内),总黑点数,统计共有多少有黑点的列,求出每列平均有多少个黑点。判定是否为条的规范是:如果这一列的黑点数大于平均数的75%,则认为这列像素是属于条的范围,同时将这列置1,否则置为0;
求各个条空的宽度:在垂直投影的基础上根据条空的边沿的变化来求;
识别码字,根据编码原理的逆过程进行识别。
作为其中一个实施例,所述遍历经过排序后的产品图片文件列表的步骤,包括以下步骤:
当按照自底部向顶部的顺序遍历产品图片文件列表时,如果在位置P识别到产品条码,则将P在产品图片文件列表中上移所述预设值个位置并继续识别,如果在位置P识别不到产品条码,则将P在产品图片文件列表中上移一个位置并继续识别;
当按照自顶部向底部的顺序遍历产品图片文件列表时,如果在位置P识别到产品条码,则将P在产品图片文件列表中下移所述预设值个位置并继续识别,如果在位置P识别不到产品条码,则将P在产品图片文件列表中下移一个位置并继续识别。
通过所述预设值(也即每种产品的最小拍摄张数)的设定,在识别过程中无需对每张产品图片进行识别,可有效减少待识别产品图片的数量,提高效率。
当按自底向顶的顺序遍历排序好的图片文件列时,用P表示识别的当前位置,若在P位置识别到产品条码,记录产品条码值,以P=P-所述最小照片张数,向上移到下一个识别位置;若在P位置识别不到产品条码,则以P=P-1,向上移到下一个识别位置;
当按自顶向底的顺序遍历排序好的图片文件列时,用P表示识别的当前位置,若在P位置识别到产品条码,记录产品条码值,以P=P+所述最小照片张数,向下移到下一个识别位置;若在P位置识别不到产品条码,则以P=P+1,向下移到下一个识别位置;
当P指示的位置已经到顶部或底部,则完成产品条码的识别。
作为其中一个实施例,在所述识别到产品条码的步骤之后,包括以下步骤:
记录识别到的产品条码的条码值。
将识别到的产品条码的条码值进行记录,有利于后续的产品图片分组,并且可根据条码值对分组文件夹进行命名。
作为其中一个实施例,所述识别产品图片中的产品条码的步骤,包括以下步骤:
如果产品图片文件列表中一个位置上的产品条码无法识别,则接收用户输入的对该位置补录的产品条码信息。
当***检查到可能存在一款以上的产品条码照片未能识别时,***用红色标示未识别的文件列表区域,提供给用户图片预览功能,使用户快速方便地定位条码照片位置,用以人工识别。
当在上述产品条码识别过程中,若出现某一位置图片文件无法识别或识别后存在错误码的情况,则由人工在相应位置双击鼠标待出现条码编辑界面后(如对编辑框上的预览图看不清条码内容,可对预览图框选条码区域进行放大)补录纠正产品条码。这样可确保图片识别的完整性,保证了各种产品均能被识别,避免了遗漏。
作为其中一个实施例,在所述识别产品图片中的产品条码的步骤之后,包括以下步骤:
根据用户输入的校验清单对识别出的所述各种产品的产品条码进行校验。
校验***识别或人工识别的条码,针对***识别出的多个条码进行验证匹配。对识别的产品条码进行校验,确保了识别出的产品条码的准确性。
请参阅图2,为本发明的一个实施例中识别调度方法的流程示意图。
当按自底向顶的顺序遍历排序好的图片文件时,用P表示识别的当前位置,若在P位置识别不到产品条码,可以Top=P-最小照片张数+1、Bottom=P-1,[Top,Bottom]为识别区间,以Top或Bottom为起点,逐一遍历所述识别区间图片文件,或者分别以Top和Bottom为起点,同时向朝相对位置推进,逐一遍历所述识别区间图片文件来识别产品条码,记录条码值,并返回产品条码所对应的位置;
当按自顶向底的顺序遍历排序好的图片文件时,用P表示识别的当前位置,若在P位置识别不到产品条码,可以TOP=P+1,Bottom=P+最小照片张数-1,[Top,Bottom]为识别区间,以Top或Bottom为起点,逐一遍历所述识别区间图片文件,或者分别以Top和Bottom为起点,同时向朝相对位置推进,逐一遍历所述识别区间图片文件来识别产品条码,记录条码值,并返回产品条码所对应的位置。
在步骤S103中,根据识别的产品条码,可将同一产品的图片分为一组。利用校验之后的产品条码对相机卡图片分组拷贝到计算机。
可采用各种分组方法对产品图片进行分组,如在存储目录下新建若干个文件夹,每个文件夹对应一款产品,将同一款产品的产品图片移入该文件夹中。
作为一个优选的实施例,请参阅图3,为本发明的一个实施例中对产品图片分组的流程示意图。在该实施例中,包括了对产品条码进行补录和校验的步骤。
与一般技术相比,本发明产品图片分组方法获取预设了拍摄顺序和每种产品最小拍摄张数的产品图片文件列表之后,对各种产品的产品条码进行识别,在识别过程中减少了待识别产品图片的数量。可采用计算机实现对产品条码的识别,根据识别出的所述各种产品的产品条码,将同一种产品的产品图片分为一组。本发明保证了产品图片识别和图片分组过程中的准确性,同时大大提高了分组效率,节约了人工成本。
请参阅图4,为本发明产品图片分组装置的结构示意图。
本发明产品图片分组装置,包括获取模块401、识别模块402和分组模块403;
所述获取模块401,用于获取包含各种产品的产品图片的文件列表;其中,在所述文件列表中,所述产品图片包括产品条码图片和产品实物图片,各种产品的产品图片数目均不少于预设值,同一种产品的产品图片连续排列,并且各个产品条码图片均位于其所属产品的产品图片序列的顶部或者均位于底部。
所述识别模块402,用于遍历所述产品图片的文件列表,识别产品图片中的产品条码;如果在所述文件列表的当前识别位置识别到产品条码,则将当前识别位置在所述文件列表中移动所述预设值个位置并继续识别,如果在当前识别位置识别不到产品条码,则将当前识别位置在所述文件列表中移动一个位置并继续识别;
所述分组模块403,用于根据识别出的所述各种产品的产品条码,将同一种产品的产品图片分为一组。
作为其中一个实施例,本发明产品图片分组装置还包括补录模块;
如果产品图片文件列表中一个位置上的产品条码无法识别,则所述补录模块用于接收用户输入的对该位置补录的产品条码信息。
当***检查到可能存在一款以上的产品条码照片未能识别时,提供给用户图片预览功能,使用户快速方便地定位条码照片位置,用以人工识别。
当在上述产品条码识别过程中,若出现某一位置图片文件无法识别的情况,则由人工在相应位置补录产品条码。这样可确保图片识别的完整性,保证了各种产品均能被识别,避免了遗漏。
作为其中一个实施例,本发明产品图片分组装置还包括校验模块;
所述校验模块用于在识别产品图片中的产品条码之后,根据用户输入的校验清单对识别出的所述各种产品的产品条码进行校验。
校验***识别或人工识别的条码,针对***识别出的多个条码进行验证匹配。对识别的产品条码进行校验,确保了识别出的产品条码的准确性。
与一般技术相比,本发明产品图片分组装置获取预设了拍摄顺序和每种产品最小拍摄张数的产品图片文件列表之后,对各种产品的产品条码进行识别,在识别过程中减少了待识别产品图片的数量。可采用计算机实现对产品条码的识别,根据识别出的所述各种产品的产品条码,将同一种产品的产品图片分为一组。本发明保证了产品图片识别和图片分组过程中的准确性,同时大大提高了分组效率,节约了人工成本。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。