CN106845484A - 一种一维码区域的定位方法及装置 - Google Patents
一种一维码区域的定位方法及装置 Download PDFInfo
- Publication number
- CN106845484A CN106845484A CN201710114788.2A CN201710114788A CN106845484A CN 106845484 A CN106845484 A CN 106845484A CN 201710114788 A CN201710114788 A CN 201710114788A CN 106845484 A CN106845484 A CN 106845484A
- Authority
- CN
- China
- Prior art keywords
- pixel
- gradient image
- characteristic value
- horizontal
- image
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/24—Aligning, centring, orientation detection or correction of the image
- G06V10/245—Aligning, centring, orientation detection or correction of the image by locating a pattern; Special marks for positioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20016—Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/469—Contour-based spatial representations, e.g. vector-coding
- G06V10/473—Contour-based spatial representations, e.g. vector-coding using gradient analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种一维码区域的定位方法及装置,所述方法包括:根据像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值;确定水平梯度图像和垂直梯度图像;对水平梯度图像和垂直梯度图像进行二值化处理,确定前景像素点和背景像素点;基于连通域确定目标最小外接矩形,确定一维码的候选区域,进而定位一维码区域。由于在本发明实施例中,根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像,通过二值化处理,基于连通域确定每个目标最小外接矩形,得到一维码候选区域,并在候选区域中定位一维码区域,使得在噪声存在的环境下,能够准确定位出一维码区域。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种一维码区域的定位方法及装置。
背景技术
随着科学技术的快速发展,一维码的出现方便了用户的生活,一维码广泛应用于商业、邮政、图书管理、仓储、工业生产过程控制、交通等领域,用户可以通过电子设备获取包含所述一维码在内的图像,电子设备在图像中定位一维码区域,对该一维码进行解码,获取一维码对应的物品信息。因此,准确的在图像中定位一维码区域,在一维码的应用过程中至关重要。
现有技术在图像中定位一维码时,将图像进行多次的形态学处理,经过多次的形态学处理,在图像中凸显出一维码信息,然后针对凸显出的一维码信息,通过一系列的形态学处理和连通域处理进行一维码区域的定位。现有技术定位一维码区域的方法对图像要求较高,在复杂场景中,即对比度低、噪声较多的图像中,通过形态学方法定位一维码区域的效果会非常差,另外,通过现有技术无法准确定位出不同方向的一维码区域。
发明内容
本发明实施例提供了一种一维码区域的定位方法及装置,用以解决因图像中噪声存在,造成的无法准确定位一维码区域,以及无法准确定位出不同方向的一维码区域的问题。
本发明实施例提供了一种一维码区域的定位方法,该方法包括:针对每个像素点,根据该像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值;
根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像;
对水平梯度图像和垂直梯度图像进行二值化处理,确定水平梯度图像和垂直梯度图像中的前景像素点和背景像素点;
在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形,根据确定的每个目标最小外接矩形,确定一维码的候选区域,并在候选区域中定位一维码区域。
进一步地,所述根据该像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值包括:
确定与该像素点相邻的左右两列,并确定所述左右两列中与该像素点相邻的对应两组像素点,根据该对应两组像素点中对应像素点的像素值的差,及预设的第一权重,确定该像素点的水平梯度特征值;
确定与该像素点相邻的上下两行,并确定所述上下两行中与该像素点相邻的对应两组像素点,根据该对应两组像素点中对应像素点的像素值的差,及预设的第二权重,确定该像素点的垂直梯度特征值。
进一步地,所述根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像包括:
针对每个像素点,如果该像素点的水平梯度特征值小于垂直梯度特征值,则在水平梯度图像中将该像素点的像素值置零,垂直梯度图像中该像素点的像素值为其垂直梯度特征值;如果该像素点的水平梯度特征值不小于垂直梯度特征值,则在垂直梯度图像中将该像素点的像素点置零,水平梯度图像中将该像素点的像素值为其水平梯度特征值。
进一步地,所述确定水平梯度图像和垂直梯度图像之后,对水平梯度图像和垂直梯度图像进行二值化处理之前,所述方法还包括:
针对水平梯度图像中的每个像素点,根据与该像素点位于同一行且第二预设邻域内每个像素点的水平梯度特征值,确定该像素点线滤波后的水平梯度特征值;
针对垂直梯度图像中的每个像素点,根据与该像素点位于同一列且第三预设邻域内每个像素点的垂直梯度特征值,确定该像素点线滤波后的垂直梯度特征值。
进一步地,所述确定水平梯度图像和垂直梯度图像之后,对水平梯度图像和垂直梯度图像进行二值化处理之前,所述方法还包括:
获取水平梯度图像的第一金字塔图像和垂直梯度图像的第二金字塔图像;
对所述第一金字塔图像中的每一层水平梯度图像进行后续处理,并对所述第二金字塔图像中的每一层垂直梯度图像进行后续处理。
进一步地,所述在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形包括:
将根据水平梯度图像和垂直梯度图像中的前景像素点的连通域,确定的每个连通域的最小外接矩形,确定为目标最小外接矩形;或
根据水平梯度图像和垂直梯度图像中的前景像素点的连通域,确定的每个连通域的最小外接矩形,判断最小外接矩形的面积是否大于设定的面积阈值,如果是,将最小外接矩形作为目标最小外接矩形。
进一步地,所述在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形包括:
针对确定的每个连通域的最小外接矩形,判断该最小外接矩形的面积是否大于预设的面积阈值;
如果是,在该最小外接矩形中确定设定数量的扫描线,根据每条扫描线中的前景像素点的数量在该扫描线的所有像素点中所占的比例及预设的比例阈值,确定是否将对应的每条扫描线上的前景像素点更新为背景像素点;
根据像素点更新后的对应的二值化处理后的水平梯度图像和垂直梯度图像,基于连通域确定每个连通域的最小外接矩形,将确定的最小外接矩形作为目标最小外接矩形。
另一方面,本发明实施例提供了一种一维码区域的定位装置,所述装置包括:
梯度确定模块,用于针对每个像素点,根据该像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值;
图像确定模块,用于根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像;
二值化模块,用于对水平梯度图像和垂直梯度图像进行二值化处理,确定水平梯度图像和垂直梯度图像中的前景像素点和背景像素点;
定位模块,用于在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形,根据确定的每个目标最小外接矩形,确定一维码的候选区域,并在候选区域中定位一维码区域。
进一步地,所述梯度确定模块,具体用于确定与该像素点相邻的左右两列,并确定所述左右两列中与该像素点相邻的对应两组像素点,根据该对应两组像素点中对应像素点的像素值的差,及预设的第一权重,确定该像素点的水平梯度特征值;确定与该像素点相邻的上下两行,并确定所述上下两行中与该像素点相邻的对应两组像素点,根据该对应两组像素点中对应像素点的像素值的差,及预设的第二权重,确定该像素点的垂直梯度特征值。
进一步地,所述图像确定模块,具体用于针对每个像素点,如果该像素点的水平梯度特征值小于垂直梯度特征值,则在水平梯度图像中将该像素点的像素值置零,垂直梯度图像中该像素点的像素值为其垂直梯度特征值;如果该像素点的水平梯度特征值不小于垂直梯度特征值,则在垂直梯度图像中将该像素点的像素点置零,水平梯度图像中将该像素点的像素值为其水平梯度特征值。
进一步地,所述装置还包括:
滤波模块,用于针对水平梯度图像中的每个像素点,根据与该像素点位于同一行且第二预设邻域内每个像素点的水平梯度特征值,确定该像素点线滤波后的水平梯度特征值;针对垂直梯度图像中的每个像素点,根据与该像素点位于同一列且第三预设邻域内每个像素点的垂直梯度特征值,确定该像素点线滤波后的垂直梯度特征值。
进一步地,所述装置还包括:
获取模块,用于获取水平梯度图像的第一金字塔图像和垂直梯度图像的第二金字塔图像;针对所述第一金字塔图像中的每一层水平梯度图像,触发二值化模块,并针对所述第二金字塔图像中的每一层垂直梯度图像,触发二值化模块。
进一步地,所述定位模块,具体用于将根据水平梯度图像和垂直梯度图像中的前景像素点的连通域,确定的每个连通域的最小外接矩形,确定为目标最小外接矩形;或根据水平梯度图像和垂直梯度图像中的前景像素点的连通域,确定的每个连通域的最小外接矩形,判断最小外接矩形的面积是否大于设定的面积阈值,如果是,将最小外接矩形作为目标最小外接矩形。
进一步地,所述定位模块,具体用于针对确定的每个连通域的最小外接矩形,判断该最小外接矩形的面积是否大于预设的面积阈值;如果是,在该最小外接矩形中确定设定数量的扫描线,根据每条扫描线中的前景像素点的数量在该扫描线的所有像素点中所占的比例及预设的比例阈值,确定是否将对应的每条扫描线上的前景像素点更新为背景像素点;根据像素点更新后的对应的二值化处理后的水平梯度图像和垂直梯度图像,基于连通域确定每个连通域的最小外接矩形,将确定的最小外接矩形作为目标最小外接矩形。
本发明实施例提供了一种一维码区域的定位方法及装置,所述方法包括:针对每个像素点,根据该像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值;根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像;对水平梯度图像和垂直梯度图像进行二值化处理,确定水平梯度图像和垂直梯度图像中的前景像素点和背景像素点;在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形,根据确定的每个目标最小外接矩形,确定一维码的候选区域,并在候选区域中定位一维码区域。由于在本发明实施例中,根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像,水平梯度图像可以定位一维码区域中条码的方向接近垂直方向的一维码区域,垂直梯度图像可以定位一维码区域中条码的方向接近水平方向的一维码区域,因此可以定位不同方向的一维码区域,另外通过对水平梯度图像和垂直梯度图像进行二值化处理,基于连通域确定每个连通域的目标最小外接矩形,进而得到一维码候选区域,并在候选区域中定位一维码区域,使得在噪声存在的环境下,能够准确定位出一维码区域。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的一种一维码区域的定位过程示意图;
图2A为本发明实施例提供的确定像素点水平梯度特征值示意图;
图2B为本发明实施例提供的确定像素点垂直梯度特征值示意图;
图3A为水平梯度图像中每个像素点的水平梯度特征值;
图3B为垂直梯度图像中每个像素点的垂直梯度特征值;
图4A为水平梯度图像中每个像素点更新后的水平梯度特征值;
图4B为垂直梯度图像中每个像素点更新后的垂直梯度特征值;
图5为本发明实施例4提供的一种一维码区域的定位过程示意图;
图6为本发明实施例5提供的一种一维码区域的定位过程示意图;
图7为本发明实施例6提供的一种一维码区域的定位过程示意图;
图8为本发明实施例7提供的一种一维码区域的定位过程示意图;
图9为本发明实施例提供的一种一维码区域的定位装置结构示意图。
具体实施方式
下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1:
图1为本发明实施例提供的一种一维码区域的定位过程示意图,该过程包括以下步骤:
S101:针对每个像素点,根据该像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值。
本发明实施例提供的一维码区域的定位方法应用于电子设备。所述电子设备可以是手持式条码阅读器、固定式条码阅读器等条码阅读设备,也可以是具有条码解码功能的PC、智能电视、相机手机、平板电脑等终端设备。
电子设备可以识别图像中每个像素点的像素值,针对每个像素点,根据该像素点水平方向相邻的每个像素点的像素值,可以确定该像素点的水平梯度特征值,具体的,在确定该像素点的水平梯度特征值时,可以用与该像素点水平方向相邻且位于该像素点左侧的像素点的像素值减去与该像素点水平方向相邻且位于该像素点右侧的像素点的像素值,也可以用与该像素点水平方向相邻且位于该像素点右侧的像素点的像素值减去与该像素点水平方向相邻且位于该像素点左侧的像素点的像素值,针对每个像素点,只要保证相减顺序一致即可。另外,可以预先设定一个权重,将上述得到的差值与所说权重的乘积作为该像素点水平梯度特征值。
针对每个像素点,根据该像素点垂直方向相邻的每个像素点的像素值,可以确定该像素点的垂直梯度特征值,具体的,在确定该像素点的垂直梯度特征值时,可以用与该像素点垂直方向相邻且位于该像素点上侧的像素点的像素值减去与该像素点垂直方向相邻且位于该像素点下侧的像素点的像素值,也可以用与该像素点垂直方向相邻且位于该像素点下侧的像素点的像素值减去与该像素点垂直方向相邻且位于该像素点上侧的像素点的像素值,针对每个像素点,只要保证相减顺序一致即可。另外,可以预先设定一个权重,将上述得到的差值与所说权重的乘积作为该像素点水平梯度特征值。
S102:根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像。
根据该像素点第一预设邻域内每个位置的第一权重和第二权重及每个像素点的像素值,确定每个像素点的水平梯度特征值和垂直梯度特征值之后,根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像,即确定的水平梯度图像中每个像素点的像素值为该像素点的水平梯度特征值,确定的垂直梯度图像中每个像素点的像素值为该像素点的垂直梯度特征值。
所述确定的水平梯度图像用于定位图像中一维码区域中条码的方向接近垂直方向的一维码区域,所述确定的垂直梯度图像用于定位图像中一维码区域中条码的方向接近水平方向的一维码区域。
S103:对水平梯度图像和垂直梯度图像进行二值化处理,确定水平梯度图像和垂直梯度图像中的前景像素点和背景像素点。
确定的水平梯度图像和垂直梯度图像进行二值化处理,具体的,可以采用最大类间方差(otsu)算法,计算水平梯度图像的第一阈值和垂直梯度图像的第二阈值,其中第一阈值和第二阈值可以相同或不同。针对水平梯度图像,将大于第一阈值的像素点的像素值置为1,将不大于第一阈值的像素点的像素值置为0;针对垂直梯度图像,将大于第二阈值的像素点的像素值置为1,将不大于第一阈值的像素点的像素值置为0。对水平梯度图像和垂直梯度图像进行二值化处理后,将水平梯度图像和垂直梯度图像中的像素值为1的像素点确定为前景像素点,将像素值为0的像素点确定为背景像素点。
在本发明实施例中,采用otsu算法,计算进行二值化的阈值的过程属于现有技术,在此不再对此过程进行赘述。
S104:在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形,根据确定的每个目标最小外接矩形,确定一维码的候选区域,并在候选区域中定位一维码区域。
在对水平梯度图像和垂直梯度图像进行二值化处理之后,针对二值化处理后的水平梯度图像和垂直梯度图像中的前景像素点,基于连通域确定每个连通域的目标最小外接矩形,根据确定的每个目标最小外接矩形,确定一维码的候选区域,即可以将确定的每个目标最小外接矩形作为一维码的候选区域。确定一维码的候选区域后,在候选区域中定位一维码区域。具体的,在候选区域中定位一维码时,可以将所述候选区域映射到电子设备最初获取的原图像中,根据原图像中候选区域的黑白相间特征,可以定位一维码区域。
在本发明实施例中,基于连通域确定每个连通域的目标最小外接矩形,以及在候选区域中定位一维码区域的过程都属于现有技术,在本发明实施例中不再对此过程进行赘述。
由于在本发明实施例中,根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像,水平梯度图像可以定位一维码区域中条码的方向接近垂直方向的一维码区域,垂直梯度图像可以定位一维码区域中条码的方向接近水平方向的一维码区域,因此可以定位不同方向的一维码区域,另外通过对水平梯度图像和垂直梯度图像进行二值化处理,基于连通域确定每个连通域的目标最小外接矩形,进而得到一维码候选区域,并在候选区域中定位一维码区域,使得在噪声存在的环境下,能够准确定位出一维码区域。
实施例2:
为了使确定的像素点的的水平梯度特征值和垂直梯度特征值更准确,在上述实施例的基础上,在本发明实施例中,所述根据该像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值包括:
确定与该像素点相邻的左右两列,并确定所述左右两列中与该像素点相邻的对应两组像素点,根据该对应两组像素点中对应像素点的像素值的差,及预设的第一权重,确定该像素点的水平梯度特征值;
确定与该像素点相邻的上下两行,并确定所述上下两行中与该像素点相邻的对应两组像素点,根据该对应两组像素点中对应像素点的像素值的差,及预设的第二权重,确定该像素点的垂直梯度特征值。
针对于每个像素点,与该像素点左右相邻的像素点对该像素点的水平梯度特征值影响较大,因此,在确定该像素点的水平梯度特征值时,可以确定与该像素点相邻的左右两列,并确定所述左右两列中与该像素点相邻的对应两组像素点。所述对应的两组像素点中包括相同数量的像素点,并且,针对于两组像素点中的每一行都存在两个属于所述两组像素点中的像素点。针对确定的两组像素点中每一行对应的两个像素点,计算所述两个像素点的像素值的差,其中,可以用左侧的像素点的像素值减去右侧的像素点的像素值,也可以用右侧的像素点的像素值减去左侧的像素点的像素值,针对每个像素点,只要保证相减顺序一致即可。
电子设备中,针对确定的两组像素点中每一行预设有第一权重,其中,每一行对应的第一权重可以相同也可以不同,较佳的,与该像素点距离越近的一行对应的第一权重越大,即与该像素点位于同一行的第一权重最大。将针对该像素点确定的两组像素点中每一行的像素点的像素值的差,与每一行对应的第一权重的乘积的和,确定为该像素点的水平梯度特征值。
下面以一个具体的例子进行说明。
针对该像素点,确定的两组像素点中可以分别包括3个,4个,5个等像素点,如图2A所示,以确定的两组像素点中分别包括3个像素点为例,其中,左侧组中像素点的像素值由上到下依次为200,150,80,右侧组中像素点的像素值由上到下依次为140,160,90,假设规定用左侧像素点的像素值减去右侧像素点的像素值,且,预设的第一行的第一权重为3,第二行的第一权重为10,第三行的第一权重为3。则该像素点(图2A中的黑色圆点)的水平梯度特征值为:(200-140)×3+(150-160)×10+(80-90)×3=50。
针对于每个像素点,与该像素点上下相邻的像素点对该像素点的垂直梯度特征值影响较大,因此,在确定该像素点的垂直梯度特征值时,可以确定与该像素点相邻的上下两行,并确定所述上下两行中与该像素点相邻的对应两组像素点。所述对应的两组像素点中包括相同数量的像素点,并且,针对于两组像素点中的每一列都存在两个属于所述两组像素点中的像素点。针对确定的两组像素点中每一列对应的两个像素点,计算所述两个像素点的像素值的差,其中,可以用上侧的像素点的像素值减去下侧的像素点的像素值,也可以用下侧的像素点的像素值减去上侧的像素点的像素值,针对每个像素点,只要保证相减顺序一致即可。电子设备中,针对确定的两组像素点中每一列预设有第二权重,其中,每一列对应的第二权重可以相同也可以不同,较佳的,与该像素点距离越近的一列对应的第二权重越大,即与该像素点位于同一列的第二权重最大。将针对该像素点确定的两组像素点中每一列的像素点的像素值的差,与每一列对应的第二权重的乘积的和,确定为该像素点的垂直梯度特征值。
下面以一个具体的例子进行说明。
针对该像素点,确定的两组像素点中可以分别包括3个,4个,5个等像素点,如图2B所示,以确定的两组像素点中分别包括3个像素点为例,其中,上侧组中像素点的像素值由左到右依次为200,150,140,下侧组中像素点的像素值由左到右依次为80,160,90,假设规定用上侧像素点的像素值减去下侧像素点的像素值,且,预设的第一列的第二权重为3,第二列的第二权重为10,第三列的第二权重为3。则该像素点(图2B中的黑色圆点)的水平梯度特征值为:(200-80)×3+(150-160)×10+(140-90)×3=410。
由于在本发明实施例中,根据与该像素点相邻的左右两列中的两组像素点,根据该对应两组像素点中对应像素点的像素值的差,及预设的第一权重,确定该像素点的水平梯度特征值,根据与该像素点相邻的上下两行中的两组像素点,根据该对应两组像素点中对应像素点的像素值的差,及预设的第二权重,确定该像素点的垂直梯度特征值,使得确定的像素点的的水平梯度特征值和垂直梯度特征值更准确。
实施例3:
在确定水平梯度图像和垂直梯度图像时,为了减少一维码周围区域存在的纹理干扰,在上述各实施例的基础上,在本发明实施例中,所述根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像包括:
针对每个像素点,如果该像素点的水平梯度特征值小于垂直梯度特征值,则在水平梯度图像中将该像素点的像素值置零,垂直梯度图像中该像素点的像素值为其垂直梯度特征值;如果该像素点的水平梯度特征值不小于垂直梯度特征值,则在垂直梯度图像中将该像素点的像素点置零,水平梯度图像中将该像素点的像素值为其水平梯度特征值。
针对于一维码区域,一维码周围的区域可能存在纹理干扰,比如一维码区域中出现与条码垂直交叉的线时,会导致确定的每个像素点的水平梯度特征值和垂直梯度特征值不准确,当一维码区域中条码的方向接近垂直方向时,条码上的像素点对应的水平梯度特征值大于垂直梯度特征值,但是此时,所述与条码垂直交叉的线上的像素点对应的水平梯度特征值是小于垂直梯度特征值的;相反,当一维码区域中条码的方向接近水平方向时,条码上的像素点对应的垂直梯度特征值大于水平梯度特征值,但是此时,所述与条码垂直交叉的线上的像素点对应的垂直梯度特征值是小于水平梯度特征值的。
因此,为了减少一维码周围的区域可能存在纹理干扰,针对每个像素点,通过比较该像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像中每个像素点的对应像素值。具体的更新过程为:如果该像素点的水平梯度特征值小于垂直梯度特征值,则在水平梯度图像中将该像素点的像素值置零,垂直梯度图像中该像素点的像素值为其垂直梯度特征值;如果该像素点的水平梯度特征值不小于垂直梯度特征值,则在垂直梯度图像中将该像素点的像素点置零,水平梯度图像中将该像素点的像素值为其水平梯度特征值。
下面以一个例子对本发明实施例进行说明。
图3A为水平梯度图像中每个像素点的水平梯度特征值,图3B为垂直梯度图像中每个像素点的垂直梯度特征值,如图3A所示,第一行中每个像素点的水平梯度特征值分别为-38,54,29,-64,51,-97,第二行中每个像素点的水平梯度特征值分别为24,-53,120,-57,50,-74,第三行中每个像素点的水平梯度特征值分别为-29,-87,150,-43,57,-24;如图3B所示,第一行中每个像素点的垂直梯度特征值分别为24,72,15,-32,54,13,第二行中每个像素点的垂直梯度特征值分别为56,-85,108,23,77,-29,第三行中每个像素点的垂直梯度特征值分别为-34,56,112,47,-35,-57。根据上述通过将该像素点的水平梯度特征值和垂直梯度特征值进行比较,对水平梯度特征值和垂直梯度特征值进行更新的方法,针对图3A和图3B,对每个像素点的水平梯度特征值和垂直梯度特征值进行更新,图4A为水平梯度图像中每个像素点更新后的水平梯度特征值,图4B为垂直梯度图像中每个像素点更新后的垂直梯度特征值,如图4A所示,第一行中每个像素点的更新后水平梯度特征值分别为0,0,29,0,0,0,第二行中每个像素点更新后的水平梯度特征值分别为0,-53,120,0,0,0,第三行中每个像素点更新后的水平梯度特征值分别为-29,0,150,0,57,-24;如图4B所示,第一行中每个像素点更新后的垂直梯度特征值分别为24,72,0,-32,54,13,第二行中每个像素点更新后的垂直梯度特征值分别为56,0,0,23,77,-29,第三行中每个像素点更新后的垂直梯度特征值分别为0,56,0,47,0,0。
由于在本发明实施例中,针对每个像素点,通过将该像素点的水平梯度特征值和垂直梯度特征值进行比较,对水平梯度特征值和垂直梯度特征值进行了更新,根据更新后的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像,因此减少了一维码周围区域存在的纹理干扰,使得后续对一维码区域的定位更加准确。
实施例4:
为了保证一维码区域能够粘连在一起,在上述各实施例的基础上,在本发明实施例中,所述确定水平梯度图像和垂直梯度图像之后,对水平梯度图像和垂直梯度图像进行二值化处理之前,所述方法还包括:
针对水平梯度图像中的每个像素点,根据与该像素点位于同一行且第二预设邻域内每个像素点的水平梯度特征值,确定该像素点线滤波后的水平梯度特征值;
针对垂直梯度图像中的每个像素点,根据与该像素点位于同一列且第三预设邻域内每个像素点的垂直梯度特征值,确定该像素点线滤波后的垂直梯度特征值。
确定的水平梯度图像可以定位一维码区域中条码的方向接近垂直方向的一维码区域,垂直梯度图像可以定位一维码区域中条码的方向接近水平方向的一维码区域,但是,由上述方法确定的水平梯度图像和垂直梯度图像中,一维码区域有可能不粘连,从而影响一维码区域的定位。为了保证一维码区域能够粘连在一起,在确定水平梯度图像和垂直梯度图像之后,需要对水平梯度图像和垂直梯度图像进行线滤波。
具体的,针对水平梯度图像中的每个像素点,根据与该像素点位于同一行且第二预设邻域内每个像素点的水平梯度特征值,确定该像素点线滤波后的水平梯度特征值,所述第二预设邻域为包含对应像素点的一个邻域范围,例如可以是3×5等较大的邻域范围,较佳的,为了保证一维码区域能够粘连在一起,所述第二预设邻域可以为以该像素点为中心的1×3的邻域,即1行3列,在1×3的邻域内,该像素点左右各有一个像素点,将1×3的邻域内的三个像素点的水平梯度特征值的平均值作为该像素点线滤波后的水平梯度特征值。
针对垂直梯度图像中的每个像素点,根据与该像素点位于同一列且第三预设邻域内每个像素点的垂直梯度特征值,确定该像素点线滤波后的垂直梯度特征值,所述第三预设邻域为包含对应像素点的一个邻域范围,例如可以是5×3等较大的邻域范围,较佳的,为了保证一维码区域能够粘连在一起,所述第三预设邻域可以为以该像素点为中心的3×1的邻域,即3行1列,在3×1的邻域内,该像素点上下各有一个像素点,将3×1的邻域内的三个像素点的垂直梯度特征值的平均值作为该像素点线滤波后的垂直梯度特征值。
由于在本发明实施例中,针对水平梯度图像和垂直梯度图像中的每个像素点,进行了线滤波处理,因此保证了一维码区域能够粘连在一起。
图5为本发明实施例提供的一种一维码区域的定位过程示意图,该过程包括以下步骤:
S501:针对每个像素点,根据该像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值。
S502:通过将每个像素点的水平梯度特征值和垂直梯度特征值进行比较,对每个像素点的水平梯度特征值和垂直梯度特征值进行更新,根据每个像素点更新后的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像。
S503:针对水平梯度图像中的每个像素点,根据与该像素点位于同一行且第二预设邻域内每个像素点的水平梯度特征值,确定该像素点线滤波后的水平梯度特征值;针对垂直梯度图像中的每个像素点,根据与该像素点位于同一列且第三预设邻域内每个像素点的垂直梯度特征值,确定该像素点线滤波后的垂直梯度特征值。
S504:对水平梯度图像和垂直梯度图像进行二值化处理,确定水平梯度图像和垂直梯度图像中的前景像素点和背景像素点。
S505:在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形,根据确定的每个目标最小外接矩形,确定一维码的候选区域,并在候选区域中定位一维码区域。
实施例5:
为了实现对不同尺寸的一维码区域进行定位,在上述各实施例的基础上,在本发明实施例中,所述确定水平梯度图像和垂直梯度图像之后,对水平梯度图像和垂直梯度图像进行二值化处理之前,所述方法还包括:
获取水平梯度图像的第一金字塔图像和垂直梯度图像的第二金字塔图像;
对所述第一金字塔图像中的每一层水平梯度图像进行后续处理,并对所述第二金字塔图像中的每一层垂直梯度图像进行后续处理。
由于电子设备在图像中定位一维码区域时,是按照预设的算子大小在图像中进行一维码区域定位的,这样,针对不同尺寸的一维码区域,有可能出现未定位出一维码区域的情况,因此,确定水平梯度图像和垂直梯度图像之后,通过获取水平梯度图像的第一金字塔图像和垂直梯度图像的第二金字塔图像,对所述第一金字塔图像中的每一层水平梯度图像进行后续处理,并对所述第二金字塔图像中的每一层垂直梯度图像进行后续处理,从而可以实现对不同尺寸的一维码区域进行定位。
电子设备获取水平梯度图像的第一金字塔图像和垂直梯度图像的第二金字塔图像,在获取第一金字塔图像和第二金字塔图像时,可以将水平梯度图像和垂直梯度图像按比例放大或缩小。
在本发明实施例中,为了提高定位一维码的效率,将水平梯度图像和垂直梯度图像按比例缩小,例如,针对水平梯度图像,可以按0.5的比例依次缩小四次,得到五层的第一金字塔图像,五层第一金字塔图像中包含尺寸不同的一维码区域,对所述第一金字塔图像中的每一层水平梯度图像进行后续处理,可以保证在第一金字塔图像中定位至少一个一维码区域中条码的方向接近垂直方向的一维码区域;针对垂直梯度图像,可以按0.5的比例依次缩小四次,得到五层的第二金字塔图像,五层的第二金字塔图像中包含尺寸不同的一维码区域,对所述第二金字塔图像中的每一层垂直梯度图像进行后续处理,可以保证在第二金字塔图像中定位至少一个一维码区域中条码的方向接近水平方向的一维码区域。
由于在本发明实施例中,通过生成水平梯度图像的第一金字塔图像和垂直梯度图像的第二金字塔图像,对所述第一金字塔图像中的每一层水平梯度图像进行后续处理,并对所述第二金字塔图像中的每一层垂直梯度图像进行后续处理,可以保证在第一金字塔图像和第二金字塔图像中定位至少一个一维码区域,因此能够实现对不同尺寸的一维码区域进行定位。
在本发明实施例中,可以根据线滤波后的水平梯度图像,生成水平梯度图像的第一金字塔图像,根据线滤波后的垂直梯度图像,生成垂直梯度图像的第二金字塔图像。为了使定位的一维码区域更准确,较佳的,根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像后,生成水平梯度图像的第一金字塔图像和垂直梯度图像的第二金字塔图像,对所述第一金字塔图像中的每一层水平梯度图像和所述第二金字塔图像中的每一层垂直梯度图像进行线滤波,并根据线滤波后的每一层水平梯度图像和垂直梯度图像,进行后续处理。
图6为本发明实施例提供的一种一维码区域的定位过程示意图,该过程包括以下步骤:
S601:针对每个像素点,根据该像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值。
S602:通过将每个像素点的水平梯度特征值和垂直梯度特征值进行比较,对每个像素点的水平梯度特征值和垂直梯度特征值进行更新,根据每个像素点更新后的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像。
S603:获取水平梯度图像的第一金字塔图像和垂直梯度图像的第二金字塔图像。
S604:针对所述第一金字塔图像中的每一层水平梯度图像中的每个像素点,根据与该像素点位于同一行且第二预设邻域内每个像素点的水平梯度特征值,确定该像素点线滤波后的水平梯度特征值;针对所述第二金字塔图像中的每一层垂直梯度图像中的每个像素点,根据与该像素点位于同一列且第三预设邻域内每个像素点的垂直梯度特征值,确定该像素点线滤波后的垂直梯度特征值。
S605:对所述第一金字塔图像中的每一层水平梯度图像和第二金字塔图像中的每一层垂直梯度图像进行二值化处理,确定每一层水平梯度图像和垂直梯度图像中的前景像素点和背景像素点。
S606:在二值化处理后的每一层水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形,根据确定的每个目标最小外接矩形,确定一维码的候选区域,并在候选区域中定位一维码区域。
实施例6:
为了使确定的目标最小外接矩形更加准确,在上述各实施例的基础上,在本发明实施例中,所述在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形包括:
将根据水平梯度图像和垂直梯度图像中的前景像素点的连通域,确定的每个连通域的最小外接矩形,确定为目标最小外接矩形;或
根据水平梯度图像和垂直梯度图像中的前景像素点的连通域,确定的每个连通域的最小外接矩形,判断最小外接矩形的面积是否大于设定的面积阈值,如果是,将最小外接矩形作为目标最小外接矩形。
根据水平梯度图像和垂直梯度图像中的前景像素点的连通域,可以确定每个连通域的最小外接矩形,可以将所述最小外接矩形确定为目标最小外接矩形。根据前景像素点的连通域,确定每个连通域的最小外接矩形的过程属于现有技术,在本发明实施例中,不再对此过程进行赘述。
在确定目标最小外接矩形时,如果确定的连通域的最小外接矩形的面积较小,则该最小外接矩形很可能是图像中的噪声。因此,电子设备中保存有设定的面积阈值,当确定了每个连通域的最小外接矩形后,针对每个最小外接矩形,判断该最小外接矩形的面积是否大于设定的面积阈值,如果是,将该最小外接矩形作为目标最小外接矩形,否则,将该最小外接矩形去除。
由于在本发明实施例中,根据水平梯度图像和垂直梯度图像中的前景像素点的连通域,可以确定每个连通域的最小外接矩形,将所述最小外接矩形确定为目标最小外接矩形,较佳的,将面积大于设定的面积阈值的最小外接矩形确定为目标最小外接矩形,因此确定的目标最小外接矩形更加准确。
图7为本发明实施例提供的一种一维码区域的定位过程示意图,该过程包括以下步骤:
S701:针对每个像素点,根据该像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值。
S702:通过将每个像素点的水平梯度特征值和垂直梯度特征值进行比较,对每个像素点的水平梯度特征值和垂直梯度特征值进行更新,根据每个像素点更新后的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像。
S703:对水平梯度图像和垂直梯度图像进行二值化处理,确定水平梯度图像和垂直梯度图像中的前景像素点和背景像素点。
S704:在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的最小外接矩形。
S705:针对每个最小外接矩形,判断该最小外接矩形的面积是否大于设定的面积阈值,如果是,进行S706,否则,去除该最小外接矩形。
S706:将该最小外接矩形作为目标最小外接矩形。
S707:根据确定的每个目标最小外接矩形,确定一维码的候选区域,并在候选区域中定位一维码区域。
实施例7:
为了进一步使确定的目标最小外接矩形更加准确,在上述各实施例的基础上,在本发明实施例中,所述所述在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形包括:
针对确定的每个连通域的最小外接矩形,判断该最小外接矩形的面积是否大于预设的面积阈值;
如果是,在该最小外接矩形中确定设定数量的扫描线,根据每条扫描线中的前景像素点的数量在该扫描线的所有像素点中所占的比例及预设的比例阈值,确定是否将对应的每条扫描线上的前景像素点更新为背景像素点;
根据像素点更新后的对应的二值化处理后的水平梯度图像和垂直梯度图像,基于连通域确定每个连通域的最小外接矩形,将确定的最小外接矩形作为目标最小外接矩形。
在确定目标最小外接矩形时,如果确定的连通域的最小外接矩形的面积小于预设的面积阈值时,则该最小外接矩形很可能是图像中的噪声。当确定的连通域的最小外接矩形的面积大于预设的面积阈值时,由于一维码区域中的扫描线上的前景像素点的数量在该扫描线上的所有像素点中所占的比例是大于预设的比例阈值的,当扫描线上的前景像素点的数量在该扫描线上的所有像素点中所占的比例小于预设的比例阈值时,说明该扫描线上的像素点也为噪声。因此,为了使确定的目标最小外接矩形更加准确,还需要根据每条扫描线中的前景像素点的数量在该扫描线的所有像素点中所占的比例及预设的比例阈值,确定是否将对应的每条扫描线上的前景像素点更新为背景像素点。
具体的,电子设备针对确定的每个连通域的最小外接矩形,判断该最小外接矩形的面积大于预设的面积阈值时,在该最小外接矩形中确定设定数量的扫描线,根据每条扫描线中的前景像素点的数量在该扫描线的所有像素点中所占的比例及预设的比例阈值,确定是否将对应的每条扫描线上的前景像素点更新为背景像素点。其中,所述预设的比例阈值为不大于1的正数,其可以为一个经验值,例如可以为0.6,0.7,0.8等等。以所述预设的比例阈值为0.7为例,即针对确定的每条扫描线,判断该扫描线上的前景像素点的数量在该扫描线的所有像素点中所占的比例小于0.7时,将该扫描线上的前景像素点更新为背景像素点。根据像素点更新后的对应的二值化处理后的水平梯度图像和垂直梯度图像,基于连通域确定每个连通域的最小外接矩形,将确定的最小外接矩形作为目标最小外接矩形。
由于在本发明实施例中,根据水平梯度图像和垂直梯度图像中的前景像素点的连通域,可以确定每个连通域的最小外接矩形,在面积大于设定的面积阈值的最小外接矩形中确定设定数量的扫描线,根据扫描线上的前景像素点的数量在该扫描线的所有像素点中所占的比例及预设的比例阈值,判断是否将对应的每条扫描线上的前景像素点更新为背景像素点,并根据更新后的对应的二值化处理后的水平梯度图像和垂直梯度图像,基于连通域确定每个连通域的最小外接矩形,将确定的最小外接矩形作为目标最小外接矩形,因此,进一步使得确定的目标最小外接矩形更加准确。
图8为本发明实施例提供的一种一维码区域的定位过程示意图,该过程包括以下步骤:
S801:针对每个像素点,根据该像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值。
S802:通过将每个像素点的水平梯度特征值和垂直梯度特征值进行比较,对每个像素点的水平梯度特征值和垂直梯度特征值进行更新,根据每个像素点更新后的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像。
S803:对水平梯度图像和垂直梯度图像进行二值化处理,确定水平梯度图像和垂直梯度图像中的前景像素点和背景像素点。
S804:在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的最小外接矩形。
S805:针对每个最小外接矩形,判断该最小外接矩形的面积是否大于设定的面积阈值,如果是,进行S806,否则,去除该最小外接矩形。
S806:在该最小外接矩形中确定设定数量的扫描线,针对每条扫描线,判断该扫描线中的前景像素点的数量在该扫描线的所有像素点中所占的比例是否小于预设的比例阈值,如果是,进行S807,如果否,不对扫描线上的前景像素点进行更新。
S807:将该扫描线上的前景像素点更新为背景像素点。
S808:根据像素点更新后的对应的二值化处理后的水平梯度图像和垂直梯度图像,基于连通域确定每个连通域的最小外接矩形,将确定的最小外接矩形作为目标最小外接矩形,根据确定的每个目标最小外接矩形,确定一维码的候选区域,并在候选区域中定位一维码区域。
图9为本发明实施例提供的一种一维码区域的定位装置结构示意图,所述装置包括:
梯度确定模块91,用于针对每个像素点,根据该像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值;
图像确定模块92,用于根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像;
二值化模块93,用于对水平梯度图像和垂直梯度图像进行二值化处理,确定水平梯度图像和垂直梯度图像中的前景像素点和背景像素点;
定位模块94,用于在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形,根据确定的每个目标最小外接矩形,确定一维码的候选区域,并在候选区域中定位一维码区域。
所述梯度确定模块,具体用于确定与该像素点相邻的左右两列,并确定所述左右两列中与该像素点相邻的对应两组像素点,根据该对应两组像素点中对应像素点的像素值的差,及预设的第一权重,确定该像素点的水平梯度特征值;确定与该像素点相邻的上下两行,并确定所述上下两行中与该像素点相邻的对应两组像素点,根据该对应两组像素点中对应像素点的像素值的差,及预设的第二权重,确定该像素点的垂直梯度特征值。
所述图像确定模块92,具体用于针对每个像素点,如果该像素点的水平梯度特征值小于垂直梯度特征值,则在水平梯度图像中将该像素点的像素值置零,垂直梯度图像中该像素点的像素值为其垂直梯度特征值;如果该像素点的水平梯度特征值不小于垂直梯度特征值,则在垂直梯度图像中将该像素点的像素点置零,水平梯度图像中将该像素点的像素值为其水平梯度特征值。
所述装置还包括:
滤波模块95,用于针对水平梯度图像中的每个像素点,根据与该像素点位于同一行且第二预设邻域内每个像素点的水平梯度特征值,确定该像素点线滤波后的水平梯度特征值;针对垂直梯度图像中的每个像素点,根据与该像素点位于同一列且第三预设邻域内每个像素点的垂直梯度特征值,确定该像素点线滤波后的垂直梯度特征值。
所述装置还包括:
获取模块96,用于获取水平梯度图像的第一金字塔图像和垂直梯度图像的第二金字塔图像;针对所述第一金字塔图像中的每一层水平梯度图像,触发二值化模块93,并针对所述第二金字塔图像中的每一层垂直梯度图像,触发二值化模块93。
所述定位模块94,具体用于将根据水平梯度图像和垂直梯度图像中的前景像素点的连通域,确定的每个连通域的最小外接矩形,确定为目标最小外接矩形;或根据水平梯度图像和垂直梯度图像中的前景像素点的连通域,确定的每个连通域的最小外接矩形,判断最小外接矩形的面积是否大于设定的面积阈值,如果是,将最小外接矩形作为目标最小外接矩形。
所述定位模块94,具体用于针对确定的每个连通域的最小外接矩形,判断该最小外接矩形的面积是否大于预设的面积阈值;如果是,在该最小外接矩形中确定设定数量的扫描线,根据每条扫描线中的前景像素点的数量在该扫描线的所有像素点中所占的比例及预设的比例阈值,确定是否将对应的每条扫描线上的前景像素点更新为背景像素点;根据像素点更新后的对应的二值化处理后的水平梯度图像和垂直梯度图像,基于连通域确定每个连通域的最小外接矩形,将确定的最小外接矩形作为目标最小外接矩形。
本发明实施例提供了一种一维码区域的定位方法及装置,所述方法包括:针对每个像素点,根据该像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值;根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像;对水平梯度图像和垂直梯度图像进行二值化处理,确定水平梯度图像和垂直梯度图像中的前景像素点和背景像素点;在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形,根据确定的每个目标最小外接矩形,确定一维码的候选区域,并在候选区域中定位一维码区域。由于在本发明实施例中,根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像,水平梯度图像可以定位一维码区域中条码的方向接近垂直方向的一维码区域,垂直梯度图像可以定位一维码区域中条码的方向接近水平方向的一维码区域,因此可以定位不同方向的一维码区域,另外通过对水平梯度图像和垂直梯度图像进行二值化处理,基于连通域确定每个连通域的目标最小外接矩形,进而得到一维码候选区域,并在候选区域中定位一维码区域,使得在噪声存在的环境下,能够准确定位出一维码区域。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种一维码区域的定位方法,其特征在于,所述方法包括:
针对每个像素点,根据该像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值;
根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像;
对水平梯度图像和垂直梯度图像进行二值化处理,确定水平梯度图像和垂直梯度图像中的前景像素点和背景像素点;
在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形,根据确定的每个目标最小外接矩形,确定一维码的候选区域,并在候选区域中定位一维码区域。
2.如权利要求1所述的方法,其特征在于,所述根据该像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值包括:
确定与该像素点相邻的左右两列,并确定所述左右两列中与该像素点相邻的对应两组像素点,根据该对应两组像素点中对应像素点的像素值的差,及预设的第一权重,确定该像素点的水平梯度特征值;
确定与该像素点相邻的上下两行,并确定所述上下两行中与该像素点相邻的对应两组像素点,根据该对应两组像素点中对应像素点的像素值的差,及预设的第二权重,确定该像素点的垂直梯度特征值。
3.如权利要求1所述的方法,其特征在于,所述根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像包括:
针对每个像素点,如果该像素点的水平梯度特征值小于垂直梯度特征值,则在水平梯度图像中将该像素点的像素值置零,垂直梯度图像中该像素点的像素值为其垂直梯度特征值;如果该像素点的水平梯度特征值不小于垂直梯度特征值,则在垂直梯度图像中将该像素点的像素点置零,水平梯度图像中将该像素点的像素值为其水平梯度特征值。
4.如权利要求1所述的方法,其特征在于,所述确定水平梯度图像和垂直梯度图像之后,对水平梯度图像和垂直梯度图像进行二值化处理之前,所述方法还包括:
针对水平梯度图像中的每个像素点,根据与该像素点位于同一行且第二预设邻域内每个像素点的水平梯度特征值,确定该像素点线滤波后的水平梯度特征值;
针对垂直梯度图像中的每个像素点,根据与该像素点位于同一列且第三预设邻域内每个像素点的垂直梯度特征值,确定该像素点线滤波后的垂直梯度特征值。
5.如权利要求1或4所述的方法,其特征在于,所述确定水平梯度图像和垂直梯度图像之后,对水平梯度图像和垂直梯度图像进行二值化处理之前,所述方法还包括:
获取水平梯度图像的第一金字塔图像和垂直梯度图像的第二金字塔图像;
对所述第一金字塔图像中的每一层水平梯度图像进行后续处理,并对所述第二金字塔图像中的每一层垂直梯度图像进行后续处理。
6.如权利要求1所述的方法,其特征在于,所述在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形包括:
将根据水平梯度图像和垂直梯度图像中的前景像素点的连通域,确定的每个连通域的最小外接矩形,确定为目标最小外接矩形;或
根据水平梯度图像和垂直梯度图像中的前景像素点的连通域,确定的每个连通域的最小外接矩形,判断最小外接矩形的面积是否大于设定的面积阈值,如果是,将最小外接矩形作为目标最小外接矩形。
7.如权利要求1所述的方法,其特征在于,所述在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形包括:
针对确定的每个连通域的最小外接矩形,判断该最小外接矩形的面积是否大于预设的面积阈值;
如果是,在该最小外接矩形中确定设定数量的扫描线,根据每条扫描线中的前景像素点的数量在该扫描线的所有像素点中所占的比例及预设的比例阈值,确定是否将对应的每条扫描线上的前景像素点更新为背景像素点;
根据像素点更新后的对应的二值化处理后的水平梯度图像和垂直梯度图像,基于连通域确定每个连通域的最小外接矩形,将确定的最小外接矩形作为目标最小外接矩形。
8.一种一维码区域的定位装置,其特征在于,所述装置包括:
梯度确定模块,用于针对每个像素点,根据该像素点水平方向相邻及垂直方向相邻的每个像素点的像素值,确定该像素点的水平梯度特征值和垂直梯度特征值;
图像确定模块,用于根据每个像素点的水平梯度特征值和垂直梯度特征值,确定水平梯度图像和垂直梯度图像;
二值化模块,用于对水平梯度图像和垂直梯度图像进行二值化处理,确定水平梯度图像和垂直梯度图像中的前景像素点和背景像素点;
定位模块,用于在二值化处理后的水平梯度图像和垂直梯度图像中,基于连通域确定每个连通域的目标最小外接矩形,根据确定的每个目标最小外接矩形,确定一维码的候选区域,并在候选区域中定位一维码区域。
9.如权利要求8所述的装置,其特征在于,所述梯度确定模块,具体用于确定与该像素点相邻的左右两列,并确定所述左右两列中与该像素点相邻的对应两组像素点,根据该对应两组像素点中对应像素点的像素值的差,及预设的第一权重,确定该像素点的水平梯度特征值;确定与该像素点相邻的上下两行,并确定所述上下两行中与该像素点相邻的对应两组像素点,根据该对应两组像素点中对应像素点的像素值的差,及预设的第二权重,确定该像素点的垂直梯度特征值。
10.如权利要求8所述的装置,其特征在于,所述图像确定模块,具体用于针对每个像素点,如果该像素点的水平梯度特征值小于垂直梯度特征值,则在水平梯度图像中将该像素点的像素值置零,垂直梯度图像中该像素点的像素值为其垂直梯度特征值;如果该像素点的水平梯度特征值不小于垂直梯度特征值,则在垂直梯度图像中将该像素点的像素点置零,水平梯度图像中将该像素点的像素值为其水平梯度特征值。
11.如权利要求8所述的装置,其特征在于,所述装置还包括:
滤波模块,用于针对水平梯度图像中的每个像素点,根据与该像素点位于同一行且第二预设邻域内每个像素点的水平梯度特征值,确定该像素点线滤波后的水平梯度特征值;针对垂直梯度图像中的每个像素点,根据与该像素点位于同一列且第三预设邻域内每个像素点的垂直梯度特征值,确定该像素点线滤波后的垂直梯度特征值。
12.如权利要求8或11所述的装置,其特征在于,所述装置还包括:
获取模块,用于获取水平梯度图像的第一金字塔图像和垂直梯度图像的第二金字塔图像;针对所述第一金字塔图像中的每一层水平梯度图像,触发二值化模块,并针对所述第二金字塔图像中的每一层垂直梯度图像,触发二值化模块。
13.如权利要求8所述的装置,其特征在于,所述定位模块,具体用于将根据水平梯度图像和垂直梯度图像中的前景像素点的连通域,确定的每个连通域的最小外接矩形,确定为目标最小外接矩形;或根据水平梯度图像和垂直梯度图像中的前景像素点的连通域,确定的每个连通域的最小外接矩形,判断最小外接矩形的面积是否大于设定的面积阈值,如果是,将最小外接矩形作为目标最小外接矩形。
14.如权利要求8所述的装置,其特征在于,所述定位模块,具体用于针对确定的每个连通域的最小外接矩形,判断该最小外接矩形的面积是否大于预设的面积阈值;如果是,在该最小外接矩形中确定设定数量的扫描线,根据每条扫描线中的前景像素点的数量在该扫描线的所有像素点中所占的比例及预设的比例阈值,确定是否将对应的每条扫描线上的前景像素点更新为背景像素点;根据像素点更新后的对应的二值化处理后的水平梯度图像和垂直梯度图像,基于连通域确定每个连通域的最小外接矩形,将确定的最小外接矩形作为目标最小外接矩形。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710114788.2A CN106845484B (zh) | 2017-02-28 | 2017-02-28 | 一种一维码区域的定位方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710114788.2A CN106845484B (zh) | 2017-02-28 | 2017-02-28 | 一种一维码区域的定位方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106845484A true CN106845484A (zh) | 2017-06-13 |
CN106845484B CN106845484B (zh) | 2019-09-17 |
Family
ID=59138313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710114788.2A Active CN106845484B (zh) | 2017-02-28 | 2017-02-28 | 一种一维码区域的定位方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106845484B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107452028A (zh) * | 2017-07-28 | 2017-12-08 | 浙江华睿科技有限公司 | 一种确定目标图像位置信息的方法及装置 |
CN107545251A (zh) * | 2017-08-31 | 2018-01-05 | 北京图铭视界科技有限公司 | 人脸质量判别及图片增强的方法及装置 |
CN107730443A (zh) * | 2017-10-27 | 2018-02-23 | 北京小米移动软件有限公司 | 图像处理方法、装置及用户设备 |
CN109508572A (zh) * | 2017-09-15 | 2019-03-22 | 杭州海康威视数字技术股份有限公司 | 一种物***姿检测方法、装置、电子设备及存储介质 |
CN110569683A (zh) * | 2018-06-06 | 2019-12-13 | 伟诠电子股份有限公司 | 条码检测方法及条码检测*** |
CN112669378A (zh) * | 2020-12-07 | 2021-04-16 | 山东省科学院海洋仪器仪表研究所 | 一种快速检测海水水下图像角点的方法 |
CN113095102A (zh) * | 2021-03-31 | 2021-07-09 | 深圳市华汉伟业科技有限公司 | 一种条形码区域的定位方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1581212A (zh) * | 2004-05-14 | 2005-02-16 | 中华电信股份有限公司 | 从车辆影像中撷取车牌区域的方法 |
CN101814139A (zh) * | 2010-04-14 | 2010-08-25 | 华中科技大学 | 一种雨滴识别方法 |
CN106033526A (zh) * | 2015-03-17 | 2016-10-19 | 苏州长鼎兴智能科技有限公司 | 一种基于梯度方向特征匹配算法定位条形码区域的方法 |
-
2017
- 2017-02-28 CN CN201710114788.2A patent/CN106845484B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1581212A (zh) * | 2004-05-14 | 2005-02-16 | 中华电信股份有限公司 | 从车辆影像中撷取车牌区域的方法 |
CN101814139A (zh) * | 2010-04-14 | 2010-08-25 | 华中科技大学 | 一种雨滴识别方法 |
CN106033526A (zh) * | 2015-03-17 | 2016-10-19 | 苏州长鼎兴智能科技有限公司 | 一种基于梯度方向特征匹配算法定位条形码区域的方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107452028A (zh) * | 2017-07-28 | 2017-12-08 | 浙江华睿科技有限公司 | 一种确定目标图像位置信息的方法及装置 |
CN107545251A (zh) * | 2017-08-31 | 2018-01-05 | 北京图铭视界科技有限公司 | 人脸质量判别及图片增强的方法及装置 |
CN109508572A (zh) * | 2017-09-15 | 2019-03-22 | 杭州海康威视数字技术股份有限公司 | 一种物***姿检测方法、装置、电子设备及存储介质 |
CN109508572B (zh) * | 2017-09-15 | 2021-10-26 | 杭州海康威视数字技术股份有限公司 | 一种物***姿检测方法、装置、电子设备及存储介质 |
CN107730443A (zh) * | 2017-10-27 | 2018-02-23 | 北京小米移动软件有限公司 | 图像处理方法、装置及用户设备 |
CN110569683A (zh) * | 2018-06-06 | 2019-12-13 | 伟诠电子股份有限公司 | 条码检测方法及条码检测*** |
CN110569683B (zh) * | 2018-06-06 | 2023-06-09 | 伟诠电子股份有限公司 | 条码检测方法及条码检测*** |
CN112669378A (zh) * | 2020-12-07 | 2021-04-16 | 山东省科学院海洋仪器仪表研究所 | 一种快速检测海水水下图像角点的方法 |
CN113095102A (zh) * | 2021-03-31 | 2021-07-09 | 深圳市华汉伟业科技有限公司 | 一种条形码区域的定位方法 |
CN113095102B (zh) * | 2021-03-31 | 2022-07-19 | 深圳市华汉伟业科技有限公司 | 一种条形码区域的定位方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106845484B (zh) | 2019-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106845484B (zh) | 一种一维码区域的定位方法及装置 | |
CN106296578B (zh) | 一种图像处理方法及装置 | |
CN109005368B (zh) | 一种高动态范围图像的生成方法、移动终端及存储介质 | |
CN104517110A (zh) | 一种二维码图像的二值化方法及*** | |
JP2008225838A (ja) | 顔特徴点検出装置、顔特徴点検出方法及びプログラム | |
CN104794479B (zh) | 基于局部笔画宽度变换的自然场景图片中文本检测方法 | |
CN106874818B (zh) | 一种数字对象唯一标识符doi识别方法与装置 | |
CN111275036A (zh) | 目标检测方法、装置、电子设备及计算机可读存储介质 | |
KR101842535B1 (ko) | 부호의 광학적 검출 방법 | |
CN108197596A (zh) | 一种手势识别方法和装置 | |
CN109447006A (zh) | 图像处理方法、装置、设备及存储介质 | |
CN105761256B (zh) | 图像的亚像素边缘直线获取方法及装置 | |
CN109308710B (zh) | 监控方法、计算装置及计算机可读存储介质 | |
CN106663317B (zh) | 数字图像的形态学处理方法和数字图像处理装置 | |
CN106919883A (zh) | 一种快速反应qr码的定位方法及装置 | |
CN111614959B (zh) | 一种视频打码方法、装置以及电子设备 | |
US9704030B2 (en) | Flesh color detection condition determining apparatus, and flesh color detection condition determining method | |
CN109901716B (zh) | 视线点预测模型建立方法、装置及视线点预测方法 | |
CN106599889A (zh) | 一种识别字符的方法和装置 | |
CN109801428A (zh) | 纸币边缘直线的检测方法、检测装置及终端 | |
CN110874814A (zh) | 一种图像处理方法、图像处理装置及终端设备 | |
CN107016388A (zh) | 一种一维码区域的定位方法及装置 | |
CN114550062A (zh) | 图像中运动对象的确定方法、装置、电子设备和存储介质 | |
JP2013012117A (ja) | 画像認識装置、画像認識方法及び画像認識用コンピュータプログラム | |
CN112465931A (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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: C10, No. 1199 Bin'an Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Zhejiang Huarui Technology Co.,Ltd. Address before: C10, No. 1199 Bin'an Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee before: ZHEJIANG HUARAY TECHNOLOGY Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |