发明内容
基于此,有必要针对上述问题,提出一种能够较好的识别色边像素点的图像中的色边像素点的确定方法、装置和计算机设备。
第一方面,提供了一种图像中的色边像素点的确定方法,包括:
获取目标图像中的目标像素点的颜色值,所述颜色值包括红色值、绿色值和蓝色值;
计算所述目标像素点的红色值和绿色值之间的差值,得到红绿差值,计算所述目标像素点的蓝色值和绿色值之间的差值,得到蓝绿差值;
根据所述目标像素点的颜色值、红绿差值和蓝绿差值确定所述像素点的颜色;
当所述目标像素点的颜色为色边颜色时,根据所述目标像素点在多个预设方向上的梯度值确定所述目标像素点是否是所述目标图像中的色边像素点,所述色边像素点为所述目标图像中的色边中的像素点。
上述图像中的色边像素点的确定方法,在确定像素点的颜色值之后,还根据颜色值确定了红绿差值和蓝绿差值,相较于单纯的根据颜色值来确定像素点的颜色的方式,这样的方式能够识别出偏红的颜色和偏蓝的颜色,使得对颜色的识别更加的灵活,在一定程度上避免了色边像素点的遗漏,最后考虑到色边是出现在亮度差异较大的交界处,这些位置必然存在一定的梯度,因此,在确定像素点的颜色为色边颜色之后,还根据多个预设方向的梯度值来进一步确定该像素点是否是色边像素点,在一定程度上提高了色边像素点的识别率。
在一个实施例中,所述根据所述目标像素点在多个预设方向上的梯度值确定所述目标像素点是否是所述目标图像中的色边像素点,包括:判断所述目标像素点在相应的预设方向上的梯度值是否有效;根据所述目标像素点在多个预设方向上的梯度值是否有效确定所述目标像素点是否是所述目标图像中的色边像素点。
上述实施例,提供了一种确定色边像素点的方法,根据梯度值判断像素点在相应的预设方向上的梯度值是否有效,如果有效,则认为该预设方向上存在高亮的像素点,从而根据多个预设方向上的梯度值是否有效来确定像素点是否是色边像素点。
在一个实施例中,所述判断所述目标像素点在相应的预设方向上的梯度值是否有效,包括:获取多个梯度组,所述梯度组中包括预设梯度值和预设亮度值;将所述目标像素点在目标预设方向上的梯度值与目标梯度组中的预设梯度值进行比较,得到所述目标像素点在所述目标预设方向上的目标梯度组的梯度比较结果,所述目标梯度组为所述多个梯度组中的一个待比对梯度组,所述目标预设方向为所述多个预设方向中的一个待比对预设方向;将所述目标像素点的亮度值与所述目标梯度组中的预设亮度值进行比较,得到所述目标像素点在所述目标预设方向上的目标梯度组的亮度比较结果;根据所述目标像素点在所述目标预设方向上的所述多个梯度组的梯度比较结果和亮度比较结果确定所述目标像素点在所述目标预设方向上的梯度值是否有效。
上述实施例,单纯的依靠梯度值来判断相应的预设方向上的梯度值是否有效可能并不准确,因为,实际的待矫正的像素点(检测窗口中心的像素点,即目标像素点)的亮度可能比较低,而待矫正的像素点是介于高亮区域和暗区域(目标所在的区域,该区域的亮度相对较低)之间的,所以理论上,待矫正的像素点的亮度不会很低,因此,结合亮度来判断梯度值是否有效将得到更加准确的判断结。
在一个实施例中,在所述根据所述目标像素点在多个预设方向上的梯度值确定所述目标像素点是否是所述目标图像中的色边像素点之后,还包括:当所述目标像素点是所述目标图像中的色边像素点时,对所述目标像素点的颜色值进行矫正。
上述实施例,在目标像素点是色边像素点的时候,还对该目标像素点进行了矫正,使得矫正后的目标图像更加的真实。
在一个实施例中,所述对所述目标像素点的颜色值进行矫正,包括:根据所述目标像素点在多个预设方向上的梯度值查找所述目标像素点对应的矫正像素点;根据所述目标像素点对应的矫正像素点的颜色值对所述目标像素点的颜色值进行矫正。
上述实施例,通过颜色值实现了色边像素点的矫正,使得矫正后的目标像素点的颜色和矫正像素点颜色相似,从而使得矫正后的目标图像更加的真实。
在一个实施例中,所述根据所述目标像素点对应的矫正像素点的颜色值对所述目标像素点的颜色值进行矫正,包括:确定目标颜色分量,第一剩余颜色分量和第二剩余颜色分量,所述目标颜色分量,所述第一剩余颜色分量和所述第二剩余颜色分量分别为红色分量、绿色分量以及蓝色分量中的一个;计算所述矫正像素点中的目标颜色分量对应的颜色分量值与所述矫正像素点中的第一剩余颜色分量对应的颜色分量值的差值,得到第一差值;计算所述矫正像素点中的目标颜色分量对应的颜色分量值与所述矫正像素点中的第二剩余颜色分量对应的颜色分量值的差值,得到第二差值;计算所述目标像素点的目标颜色分量对应的颜色分量值与所述第一差值的差值,得到所述目标像素点的第一剩余颜色分量对应的颜色分量值;计算所述目标像素点的目标颜色分量对应的颜色分量值与所述第二差值的差值,得到所述目标像素点的第二剩余颜色分量对应的颜色分量值。
上述实施例,首先确定了目标颜色分量,然后在对目标像素点的颜色值进行矫正的过程中,保持目标像素点的目标颜色分量对应的颜色分量值不变,即保证像素点的亮度不变,然后再对像素点的第一剩余颜色分量和第二剩余颜色分量对应的颜色分量值进行矫正,使得像素点在矫正后的亮度与矫正前的亮度不会出现过大的差异,进而使得矫正后的色边中不会出现明显的亮度差异区域(考虑到不可能将色边中的全部色边像素点都识别出来,即色边像素点的识别可能出现遗漏,那么,如果直接将矫正像素点的颜色值作为待矫正的像素点的颜色值来矫正,那么矫正后,如果还有未矫正的色边像素点,必然和矫正后的色边像素点出现明显的颜色差异,即色边仍然存在,因此,保持未矫正的色边像素点和矫正后的色边像素点的亮度差异不会太大,从而即使无法对所有的色边像素点进行矫正,也不会出现很大的亮度改变,从视觉上来看,色边在一定程度上被消除)。
在一个实施例中,所述根据所述目标像素点在多个预设方向上的梯度值查找所述目标像素点对应的矫正像素点,包括:根据所述目标像素点在多个预设方向上的梯度值是否有效确定所述目标像素点对应的矫正像素点的查找方向;在所述查找方向上的预设像素范围内查找所述目标像素点对应的矫正像素点。
上述实施例,提供了一种矫正像素点的查找方法,首先根据梯度值是否有效确定查找方向,然后在该查找方向上查找矫正像素点。由于梯度值是否有效反映的是相应的预设方向上是否存在高亮像素点,因此,基于梯度值是否有效可以确定矫正像素点的查找方向。
在一个实施例中,所述在所述查找方向上的预设像素范围内查找所述像素点对应的矫正像素点,包括:将在所述查找方向上的预设像素范围内首次出现的颜色为非色边颜色的像素点确定为所述像素点对应的矫正像素点。
上述实施例,将首次出现的颜色为非色边颜色的像素点确定为像素点对应的矫正像素点的优势是减少计算量并且提高矫正准确率,可以理解的是,距离色边像素点越近的像素点与色边像素点应当更相似,距离色边像素点越远的像素点与色边像素点越不相似,因此,在首次出现颜色为非色边颜色的像素点时,直接将其设置为矫正像素点,减少计算量的同时还可以提高矫正准确率。
在一个实施例中,在所述根据所述目标像素点在多个预设方向上的梯度值确定所述目标像素点是否是所述目标图像中的色边像素点之前,还包括:根据所述目标像素点的颜色值计算所述目标像素点的亮度值;获取预设亮度值和所述目标像素点在所述多个预设方向中的每个预设方向上的最大亮度值;将所述目标像素点在所述多个预设方向中的每个预设方向上的最大亮度值与所述预设亮度值进行比较,得到所述目标像素点在所述多个预设方向中的每个预设方向上的梯度权重;将所述目标像素点在所述多个预设方向中的每个预设方向上的最大亮度值与所述目标像素点的亮度值进行比较,得到所述目标像素点在所述多个预设方向中的每个预设方向上的初步梯度值;将所述目标像素点在所述多个预设方向中的每个预设方向上的梯度权重和所述目标像素点在相应的预设方向上的初步梯度值相乘,得到所述目标像素点在所述多个预设方向中的每个预设方向上的梯度值。
上述实施例,提供了一种计算像素点在各个预设方向上的梯度值的方法。由于色边通常出现在亮度差异较大的交界处,因此,基于像素点的亮度来计算梯度值,以提高色边像素点判断的准确率。
在一个实施例中,所述根据所述像素点的颜色值、红绿差值和蓝绿差值确定所述像素点的颜色,包括:获取多个颜色组,所述颜色组中包括预设蓝色值、预设红绿差值和预设蓝绿差值;将所述像素点的蓝色值与目标颜色组中的预设蓝色值进行比较,得到所述目标颜色组对应的蓝色比较结果,所述目标颜色组为所述多个颜色组中的一个待比对颜色组;将所述像素点的红绿差值与所述目标颜色组中的预设红绿差值进行比较,得到所述目标颜色组对应的红绿比较结果;将所述像素点的蓝绿差值与所述目标颜色组中的预设蓝绿差值进行比较,得到所述目标颜色组对应的蓝绿比较结果;根据所述多个颜色组对应的蓝色比较结果、红绿比较结果和蓝绿比较结果确定所述像素点的颜色。
上述实施例,预先设置多个颜色组,并根据多个颜色组对应的蓝色比较结果、红绿比较结果和蓝绿比较结果确定像素点的颜色,能够对不同亮度的相同颜色,以及,偏红或者偏蓝的颜色进行识别,提高了颜色的识别率。
第二方面,提供了一种图像中的色边像素点的确定装置,包括:
获取模块,用于获取目标图像中的目标像素点的颜色值,所述颜色值包括红色值、绿色值和蓝色值;
计算模块,用于计算所述目标像素点的红色值和绿色值之间的差值,得到红绿差值,计算所述目标像素点的蓝色值和绿色值之间的差值,得到蓝绿差值;
确定模块,用于根据所述目标像素点的颜色值、红绿差值和蓝绿差值确定所述像素点的颜色;
色边模块,用于当所述目标像素点的颜色为色边颜色时,根据所述目标像素点在多个预设方向上的梯度值确定所述目标像素点是否是所述目标图像中的色边像素点,所述色边像素点为所述目标图像中的色边中的像素点。
在一个实施例中,所述色边模块,具体用于:判断所述目标像素点在相应的预设方向上的梯度值是否有效;根据所述目标像素点在多个预设方向上的梯度值是否有效确定所述目标像素点是否是所述目标图像中的色边像素点。
在一个实施例中,所述色边模块,具体用于:获取多个梯度组,所述梯度组中包括预设梯度值和预设亮度值;将所述目标像素点在目标预设方向上的梯度值与目标梯度组中的预设梯度值进行比较,得到所述目标像素点在所述目标预设方向上的目标梯度组的梯度比较结果,所述目标梯度组为所述多个梯度组中的一个待比对梯度组,所述目标预设方向为所述多个预设方向中的一个待比对预设方向;将所述目标像素点的亮度值与所述目标梯度组中的预设亮度值进行比较,得到所述目标像素点在所述目标预设方向上的目标梯度组的亮度比较结果;根据所述目标像素点在所述目标预设方向上的所述多个梯度组的梯度比较结果和亮度比较结果确定所述目标像素点在所述目标预设方向上的梯度值是否有效。
在一个实施例中,所述装置,还包括:矫正模块,用于当所述目标像素点是所述目标图像中的色边像素点时,对所述目标像素点的颜色值进行矫正。
在一个实施例中,所述矫正模块,具体用于:根据所述目标像素点在多个预设方向上的梯度值查找所述目标像素点对应的矫正像素点;根据所述目标像素点对应的矫正像素点的颜色值对所述目标像素点的颜色值进行矫正。
在一个实施例中,所述矫正模块,具体用于:确定目标颜色分量,第一剩余颜色分量和第二剩余颜色分量,所述目标颜色分量,所述第一剩余颜色分量和所述第二剩余颜色分量分别为红色分量、绿色分量以及蓝色分量中的一个;计算所述矫正像素点中的目标颜色分量对应的颜色分量值与所述矫正像素点中的第一剩余颜色分量对应的颜色分量值的差值,得到第一差值;计算所述矫正像素点中的目标颜色分量对应的颜色分量值与所述矫正像素点中的第二剩余颜色分量对应的颜色分量值的差值,得到第二差值;计算所述目标像素点的目标颜色分量对应的颜色分量值与所述第一差值的差值,得到所述目标像素点的第一剩余颜色分量对应的颜色分量值;计算所述目标像素点的目标颜色分量对应的颜色分量值与所述第二差值的差值,得到所述目标像素点的第二剩余颜色分量对应的颜色分量值。
在一个实施例中,所述矫正模块,具体用于:根据所述目标像素点在多个预设方向上的梯度值是否有效确定所述目标像素点对应的矫正像素点的查找方向;在所述查找方向上的预设像素范围内查找所述目标像素点对应的矫正像素点。
在一个实施例中,所述矫正模块,具体用于:将在所述查找方向上的预设像素范围内首次出现的颜色为非色边颜色的像素点确定为所述像素点对应的矫正像素点。
在一个实施例中,所述装置,还包括:梯度值确定模块,用于:根据所述目标像素点的颜色值计算所述目标像素点的亮度值;获取预设亮度值和所述目标像素点在所述多个预设方向中的每个预设方向上的最大亮度值;将所述目标像素点在所述多个预设方向中的每个预设方向上的最大亮度值与所述预设亮度值进行比较,得到所述目标像素点在所述多个预设方向中的每个预设方向上的梯度权重;将所述目标像素点在所述多个预设方向中的每个预设方向上的最大亮度值与所述目标像素点的亮度值进行比较,得到所述目标像素点在所述多个预设方向中的每个预设方向上的初步梯度值;将所述目标像素点在所述多个预设方向中的每个预设方向上的梯度权重和所述目标像素点在相应的预设方向上的初步梯度值相乘,得到所述目标像素点在所述多个预设方向中的每个预设方向上的梯度值。
在一个实施例中,所述梯度值确定模块,具体用于:获取多个颜色组,所述颜色组中包括预设蓝色值、预设红绿差值和预设蓝绿差值;将所述像素点的蓝色值与目标颜色组中的预设蓝色值进行比较,得到所述目标颜色组对应的蓝色比较结果,所述目标颜色组为所述多个颜色组中的一个待比对颜色组;将所述像素点的红绿差值与所述目标颜色组中的预设红绿差值进行比较,得到所述目标颜色组对应的红绿比较结果;将所述像素点的蓝绿差值与所述目标颜色组中的预设蓝绿差值进行比较,得到所述目标颜色组对应的蓝绿比较结果;根据所述多个颜色组对应的蓝色比较结果、红绿比较结果和蓝绿比较结果确定所述像素点的颜色。
第三方面,提供了一种计算机设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述图像中的色边像素点的确定方法的步骤。
第四方面,提供了一种计算机可读存储介质,所述计算机可读取存储介质中存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如上所述图像中的色边像素点的确定方法的步骤。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在一个实施例中,提供了一种图像中的色边像素点的确定方法。本发明实施例所述的图像中的色边像素点的确定方法的执行主体为能够实现本发明实施例所述的图像中的色边像素点的确定方法的计算机设备,该计算机设备可以包括但不限于终端和服务器。其中,终端包括台式终端和移动终端,台式终端包括但不限于台式电脑和车载电脑;移动终端包括但不限于手机、平板、笔记本电脑、智能手表和相机。服务器包括高性能计算机和高性能计算机集群。
需要指出的是,在本发明实施例中,以紫色色边为例对本发明实施例进行详细说明。
在本发明实施例中,采用的色彩模型是RGB模型,但需要指出的是,本发明实施例并不会对色彩模型进行限制,即当其他的色彩模型也采用了本发明实施例的发明构思时,也应当落入本发明实施例所要保护的范围,具体来说,只要其他的色彩模型也采用了根据颜色值计算颜色差值,然后根据颜色值和颜色差值确定像素点颜色的方案,都应当落入本发明实施例所要保护的范围。
在一个实施例中,如图1所示,提供了一种图像中的色边像素点的确定方法,包括:
步骤100,获取目标图像中的目标像素点的颜色值,所述颜色值包括红色值、绿色值和蓝色值。
目标图像,为当前需要处理的图像,即待确定是否包含色边的图像,如果目标图像中包含色边像素点,则目标图像是包含色边的图像,相反,如果目标图像中的像素点均不是色边像素点,则目标图像是不包含色边的图像,也就是说,通过本发明实施例提供的图像中的色边像素点的确定方法不仅可以确定图像是否包含色边像素点,还能同时确定该图像是否是包含色边的图像。
目标像素点,为目标图像中的像素点。目标像素点可以是目标图像中所有像素点中的任一像素点;目标像素点也可以是目标图像中的目标区域的像素点,其中,目标区域可以是根据预置的区域确定规则确定的区域,也可以是根据用户对目标图像的交互操作确定的区域,例如,用户在目标图像中圈起来的区域,还可以是通过图像识别技术识别出来的一个区域,例如,图像识别技术为对包含色边的区域进行识别的技术,从而将包含色边的区域识别出来,该识别出来的包含色边的区域即为目标区域。
其中,色边,为目标在亮度差异较大的交界处出现的某种颜色的边缘,如图2所示的黑色虚线标记的色边,黑色虚线标记的色边出现在建筑物旁边。其中,目标可以是人,动物,也可以是植物,在此不做具体的限定。
目标图像是彩色图像,目标图像中的每个像素点都包含颜色值,具体的,颜色值包括红色值、绿色值和蓝色值,由于每个像素点的红色值、绿色值和蓝色值不同,所以每个像素点呈现的颜色不同。
颜色值,为颜色分量对应的颜色分量值。目标图像中的颜色分量包括红色分量、绿色分量和蓝色分量。红色值为红色分量对应的红色分量值,绿色值为绿色分量对应的绿色分量值,蓝色值为蓝色分量对应的蓝色分量值。例如,红色分量用R表示,红色分量值为128,即红色值为128。
在一个实施例中,步骤100所述获取目标图像中的目标像素点的颜色值,包括:
步骤101,对目标图像中的目标像素点,获取所述目标像素点的初步颜色值。
初步颜色值,在目标图像的颜色空间是初步颜色空间的时候,目标图像中的目标像素点的颜色值为初步颜色值,例如,目标图像的颜色空间是YUV空间,则目标像素点中的目标像素点的颜色值为亮度值Y,第一色差值U和第二色差值V。
步骤102,对所述目标像素点的初步颜色值进行颜色空间的转换,得到所述目标像素点的颜色值。
再如上例子,假设转换公式为:红色值=Y+w1×V,绿色值=Y-w2×U-w3×V,蓝色值=Y+w4×U,根据转换公式,对目标像素点的初步颜色值进行颜色空间的转换,得到目标像素点的颜色值。
上述实施例,由于目标图像可能并不是RGB图像,因此,获取目标图像的初步颜色值,然后根据颜色空间的转换关系对初步颜色值进行转换,得到目标像素点的颜色值。
步骤200,计算所述目标像素点的红色值和绿色值之间的差值,得到红绿差值,计算所述目标像素点的蓝色值和绿色值之间的差值,得到蓝绿差值。
红绿差值,为红色值减去绿色值后得到的值;蓝绿差值为蓝色值减去绿色值后得到的值。例如,红色值为92,绿色值为80,蓝色值为160,则红绿差值为92-80=12,蓝绿差值为160-80=80。
步骤300,根据所述目标像素点的颜色值、红绿差值和蓝绿差值确定所述像素点的颜色。
由于已经知晓了目标像素点的颜色值、红绿差值和蓝绿差值,因此,可以根据目标像素点的颜色值、红绿差值和蓝绿差值来确定该目标像素点的颜色,相较于单纯的根据目标像素点的颜色值来确定目标像素点的颜色的方式,这样的方式能够把偏红或者偏蓝的颜色也识别出来。例如,识别紫色,单纯的依靠颜色值来识别紫色可能只能识别纯紫色,比如,当红色值在某个区间,绿色值在某个区间,蓝色值在某个区间,则认为是紫色,这样的识别方法对于紫色的识别精度并不高,本发明实施例提供的图像中的色边像素点的确定方法结合红绿差值和蓝绿差值来识别紫色,便可以把偏红的紫色还有偏蓝的紫色也都识别出来,使得紫色的识别更加的灵活,在一定程度上避免了色边像素点的遗漏。
步骤400,当所述目标像素点的颜色为色边颜色时,根据所述目标像素点在多个预设方向上的梯度值确定所述目标像素点是否是所述目标图像中的色边像素点,所述色边像素点为所述目标图像中的色边中的像素点。
色边颜色,为色边的颜色,色边中的像素点通常会呈现比较一致的颜色,例如,紫色色边,则色边颜色为紫色,即色边中的像素点基本全为紫色;再如,蓝色色边,则色边颜色为蓝色。
预设方向,为预先设置的方向。例如,预设方向为0°方向,90°方向,180度方向和270°方向。
预设方向上的梯度值,反映该预设方向上梯度的大小。
由于色边是出现在亮度差异较大的交界处,所以交界处必然存在一定的梯度,因此,在判断一个像素点的颜色是色边颜色之后,需要再结合梯度值来进一步判断该像素点是否是色边中的像素点。
上述图像中的色边像素点的确定方法,在确定像素点的颜色值之后,还根据颜色值确定了红绿差值和蓝绿差值,相较于单纯的根据颜色值来确定像素点的颜色的方式,这样的方式能够识别出偏红的颜色和偏蓝的颜色,使得对颜色的识别更加的灵活,在一定程度上避免了色边像素点的遗漏,最后考虑到色边是出现在亮度差异较大的交界处,这些位置必然存在一定的梯度,因此,在确定像素点的颜色为色边颜色之后,还根据多个预设方向的梯度值来进一步确定该像素点是否是色边像素点,在一定程度上提高了色边像素点的识别率。
在一个实施例中,步骤400所述根据所述目标像素点在多个预设方向上的梯度值确定所述目标像素点是否是所述目标图像中的色边像素点,包括:
步骤40A,判断所述目标像素点在相应的预设方向上的梯度值是否有效。
判断某个预设方向上的梯度值是否有效的目的是:判断在该预设方向上是否存在高亮的像素点,从而根据高亮的像素点的判断结果确定该目标像素点是否是色边像素点,以及,在该目标像素点是色边像素点的同时,确定该目标像素点对应的矫正像素点的搜索方向。
示例性的,提供一种确定梯度值是否有效的方法,包括:获取门限梯度值;对每个预设方向,将该预设方向的梯度值与门限梯度值进行比较;若该预设方向的梯度值大于或等于门限梯度值,则确定该预设方向上的梯度值有效,即该预设方向上存在高亮的像素点;若该预设方向的梯度值小于门限梯度值,则确定该预设方向上的梯度值无效,即该预设方向上不存在高亮的像素点。
步骤40B,根据所述目标像素点在多个预设方向上的梯度值是否有效确定所述目标像素点是否是所述目标图像中的色边像素点。
具体的,根据下式判断目标像素点是否是所述目标图像中的色边像素点。
其中,“~d_x”表示预设方向为x方向上的梯度值无效;“d_x”表示预设方向为x方向上的梯度值有效;当“&&”和“||”同时出现时,先计算“&&”;上式中的数字0到13是指第0到第13种情况,即数字i表示第i种情况。
对于第1种情况,目标像素点前后左右四个预设方向的梯度值均有效,认为目标像素点被高亮区域包围,不是色边像素点;对于第2种到第13种情况,多个预设方向中并不是所有的预设方向的梯度值均有效,而色边像素点是处于亮度差异较大的交界处的像素点,因此,当多个预设方向中并不是所有的预设方向的梯度值均有效时,认为该目标像素点是位于色边中的色边像素点。
上述实施例,提供了一种确定色边像素点的方法,根据梯度值判断像素点在相应的预设方向上的梯度值是否有效,如果有效,则认为该预设方向上存在高亮的像素点,从而根据多个预设方向上的梯度值是否有效来确定像素点是否是色边像素点。
在一个实施例中,步骤40A所述判断所述目标像素点在相应的预设方向上的梯度值是否有效,包括:
步骤40A1,获取多个梯度组,所述梯度组中包括预设梯度值和预设亮度值。
预设梯度值,为预先设置的梯度值;预设亮度值,为预先设置的亮度值。示例性的,用Ti(ti,Li)表示多个梯度组中的第i个梯度组,其中,ti表示第i个梯度组中的预设梯度值,Li表示第i个梯度组中的预设亮度值。多个梯度组中的每个梯度组中都包括预设梯度值和预设亮度值,每个梯度组中包括的预设梯度值和预设亮度值不同。
预先设置梯度组的目的是:将目标像素点在某个预设方向的梯度值和目标像素点的亮度值与梯度组中的预设梯度值和预设亮度值进行比较,以通过比较来确定该预设方向上的梯度值是否有效。
预先设置多个梯度组的目的:由于应用场景不同,在色边,以及,色边周围的高亮区域和目标区域的明暗程度也将不同,因此,如果只设置一个梯度组,可能无法对所有应用场景进行较好的判断,因此,设置多个梯度组以提高对不同应用场景的判断的准确率。
步骤40A2,将所述目标像素点在目标预设方向上的梯度值与目标梯度组中的预设梯度值进行比较,得到所述目标像素点在所述目标预设方向上的目标梯度组的梯度比较结果,所述目标梯度组为所述多个梯度组中的一个待比对梯度组,所述目标预设方向为所述多个预设方向中的一个待比对预设方向。
待比对梯度组,为在根据梯度组判断目标预设方向上的梯度值是否有效时,多个梯度组中还未参与比对的梯度组。例如,设置3个梯度组,分别为T1(t1,L1),T2(t2,L2)和T3(t3,L3),其中,T1(t1,L1)已经完成了比对,于是,待比对梯度组为T2(t2,L2)和T3(t3,L3),将T2(t2,L2)和T3(t3,L3)中的一个,例如,T2(t2,L2)作为目标梯度组。
梯度比较结果,为梯度值的比较结果。
待比对预设方向,为多个预设方向中还未参与比对的预设方向。例如,多个预设方向为0°方向、90°方向、180度°方向和270°方向,其中,0°方向、90°方向已经完成了比对,则待比对预设方向为180度°方向和270°方向,于是,将180度°方向和270°方向中的一个,例如,270°方向作为目标预设方向。
步骤40A3,将所述目标像素点的亮度值与所述目标梯度组中的预设亮度值进行比较,得到所述目标像素点在所述目标预设方向上的目标梯度组的亮度比较结果。
亮度比较结果,为亮度值的比较结果。
步骤40A4,根据所述目标像素点在所述目标预设方向上的所述多个梯度组的梯度比较结果和亮度比较结果确定所述目标像素点在所述目标预设方向上的梯度值是否有效。
根据多个梯度组的梯度比较结果和亮度比较结果来判断像素点在目标预设方向上的梯度值是否有效。
例如,目标预设方向为90°方向,目标像素点在90°方向上的梯度值为43,目标像素点的亮度值为167,总共有2个梯度组,分别为T1(20,200)和T2(40,160),梯度组T1的梯度比较结果为43>20,亮度比较结果为167<200;梯度组T2的梯度比较结果为43>20,亮度比较结果为167>200。根据梯度组T2的比较结果可以看出,由于目标像素点自身的亮度就比较高为167,并且目标预设方向上还存在比目标像素点亮度更高的像素点(亮度值为167+43=210),因此,认为目标预设方向(90°方向)为高亮像素点所在的方向,因此,判定目标像素点在目标预设方向(90°方向)上的梯度值有效。
为了提高比对效率,在判断像素点在目标预设方向上的梯度值是否有效时,若根据目标梯度组的梯度比较结果和亮度比较结果即可确定像素点在目标预设方向上的梯度值有效,则不再对多个梯度组中剩余的其他待比对梯度组进行比较。
例如,目标预设方向为90°方向,目标像素点在90°方向上的梯度值为43,目标像素点的亮度值为207,总共有2个梯度组,分别为T1(20,200)和T2(40,160),梯度组T1的梯度比较结果为43>20,亮度比较结果为207>200,于是,根据第1个梯度组T1即可判断出目标像素点在90°方向上的梯度值有效,不必再进行梯度组T2的判断。
上述实施例,单纯的依靠梯度值来判断相应的预设方向上的梯度值是否有效可能并不准确,因为,实际的待矫正的像素点(检测窗口中心的像素点,即目标像素点)的亮度可能比较低,而待矫正的像素点是介于高亮区域和暗区域(目标所在的区域,该区域的亮度相对较低)之间的,所以理论上,待矫正的像素点的亮度不会很低,因此,结合亮度来判断梯度值是否有效将得到更加准确的判断结果。
在一个实施例中,在步骤400所述根据所述目标像素点在多个预设方向上的梯度值确定所述目标像素点是否是所述目标图像中的色边像素点之后,还包括:
步骤500,当所述目标像素点是所述目标图像中的色边像素点时,对所述目标像素点的颜色值进行矫正。
上述实施例,在目标像素点是色边像素点的时候,还对该目标像素点进行了矫正,使得矫正后的目标图像更加的真实。
在一个实施例中,步骤500所述对所述目标像素点的颜色值进行校正,包括:
步骤501,根据所述目标像素点在多个预设方向上的梯度值查找所述目标像素点对应的矫正像素点。
目标像素点对应的矫正像素点,为目标图像中用于对该目标像素点进行矫正的像素点。可以理解的是,目标像素点不同,该目标像素点对应的矫正像素点可能相同也可能不同。
由于色边出现在亮度差异较大的交界处,这些位置必然存在一定的梯度,那么在梯度相反的方向,很大可能会出现矫正像素点,因此,可以根据目标像素点在多个预设方向上的梯度值查找该像素点对应的矫正像素点。
步骤502,根据所述目标像素点对应的矫正像素点的颜色值对所述目标像素点的颜色值进行矫正。
由于色边通常出现在亮度差异较大的交界处,然后在亮度较暗的目标的边缘出现,即色边实际上是覆盖在目标边缘的某种颜色的像素点,因此,当找到矫正像素点之后,可以直接将像素点对应的矫正像素点的颜色值作为该像素点的颜色值,从而还原目标的边缘的像素点。例如,目标像素点为ps,目标像素点ps对应的矫正像素点为p2,于是,直接把p2的红色值、绿色值和蓝色值作为目标像素点ps的红色值、绿色值和蓝色值。
上述实施例,通过颜色值实现了色边像素点的矫正,使得矫正后的目标像素点的颜色和矫正像素点颜色相似,从而使得矫正后的目标图像更加的真实。。
在一个实施例中,在步骤400所述根据所述目标像素点在多个预设方向上的梯度值确定所述目标像素点是否是所述目标图像中的色边像素点之后,还包括:
当所述目标像素点不是所述目标图像中的色边像素点时,对所述目标图像中的剩余像素点进行查找,以确定所述剩余像素点是否是所述目标图像中的色边像素点。
其中,剩余像素点,为目标图像中还未查找的像素点,即还未通过查找以确定是否是色边像素点的像素点。
在一个实施例中,步骤502所述根据所述目标像素点对应的矫正像素点的颜色值对所述目标像素点的颜色值进行矫正,包括:
步骤502A,确定目标颜色分量,第一剩余颜色分量和第二剩余颜色分量,所述目标颜色分量,所述第一剩余颜色分量和所述第二剩余颜色分量分别为红色分量、绿色分量以及蓝色分量中的一个。
目标颜色分量,为红色分量、绿色分量以及蓝色分量中的一个;第一剩余颜色分量,为红色分量、绿色分量以及蓝色分量中除去目标颜色分量的一个颜色分量;第二剩余颜色分量,为红色分量、绿色分量以及蓝色分量中除去目标颜色分量和第一剩余颜色分量的颜色分量。
确定目标颜色分量的目的是要保证目标像素点矫正后的亮度相较于矫正前的亮度不会出现很大的变化。
红色分量、绿色分量以及蓝色分量中的任意一个都能作为目标颜色分量的基础是:色边通常出现在亮度差异较大的交界处,然后覆盖在亮度较暗的目标的边缘,由于目标的亮度较暗,因此,目标中的像素点的红色分量、绿色分量以及蓝色分量的值都不会很大,所以不管将红色分量、绿色分量以及蓝色分量中的哪一个作为目标颜色分量,计算得到的第一差值、第二差值的差异都不会很大,然后再基于第一差值、第二差值对色边像素点的第一剩余颜色分量和第二剩余颜色分量进行矫正,使得矫正后的色边像素点的亮度不会出现很大的改变,以免亮度改变过大,使得色边无法在高亮区域以及目标区域进行平缓的过渡,导致高亮区域以及目标区域之间出现明显的亮度改变的区域。
步骤502B,计算所述矫正像素点中的目标颜色分量对应的颜色分量值与所述矫正像素点中的第一剩余颜色分量对应的颜色分量值的差值,得到第一差值。
第一差值,为矫正像素点中的目标颜色分量和第一剩余颜色分量对应的颜色分量值的差值。例如,目标颜色分量为红色分量,第一剩余颜色分量为蓝色分量,则计算得到矫正像素点的红色分量对应的颜色分量值(假设为60)与蓝色分量对应的颜色分量值(假设为45)的差值为15,即第一差值为15。
步骤502C,计算所述矫正像素点中的目标颜色分量对应的颜色分量值与所述矫正像素点中的第二剩余颜色分量对应的颜色分量值的差值,得到第二差值。
第二差值,为矫正像素点中的目标颜色分量和第二剩余颜色分量对应的颜色分量值的差值。例如,第二剩余颜色分量为绿色分量,则计算得到矫正像素点的红色分量对应的颜色分量值(假设为60)与绿色分量对应的颜色分量值(假设为40)的差值为20,即第二差值为20。
步骤502D,计算所述目标像素点的目标颜色分量对应的颜色分量值与所述第一差值的差值,得到所述目标像素点的第一剩余颜色分量对应的颜色分量值。
对待矫正的像素点的第一剩余颜色分量进行矫正。例如,待矫正的像素点的目标颜色分量(红色分量)对应的颜色分量值为70,第一差值为15,则矫正后,像素点的第一剩余颜色分量(蓝色分量)对应的颜色分量值为55。
由于颜色值的范围是0到255,因此,如果计算得到的像素点的第一剩余颜色分量对应的颜色分量值大于255,则将像素点的第一剩余颜色分量对应的颜色分量值设置为255;如果计算得到的像素点的第一剩余颜色分量对应的颜色分量值小于0,则将像素点的第一剩余颜色分量对应的颜色分量值设置为0。
步骤502E,计算所述目标像素点的目标颜色分量对应的颜色分量值与所述第二差值的差值,得到所述目标像素点的第二剩余颜色分量对应的颜色分量值。
对待矫正的像素点的第二剩余颜色分量进行矫正。例如,待矫正的像素点的目标颜色分量(红色分量)对应的颜色分量值为70,第二差值为20则矫正后,像素点的第二剩余颜色分量(绿色分量)对应的颜色分量值为50。
如果计算得到的像素点的第二剩余颜色分量对应的颜色分量值大于255,则将像素点的第二剩余颜色分量对应的颜色分量值设置为255;如果计算得到的像素点的第二剩余颜色分量对应的颜色分量值小于0,则将像素点的第二剩余颜色分量对应的颜色分量值设置为0。
最后,保持待矫正的像素点的目标颜色分量对应的颜色分量值不变,以保证待矫正像素点的亮度不变。例如,待矫正的像素点的红色分量对应的颜色分量值为70,则矫正前后,该像素点的红色分量对应的颜色分量值均为70。
上述实施例,首先确定了目标颜色分量,然后在对目标像素点的颜色值进行矫正的过程中,保持目标像素点的目标颜色分量对应的颜色分量值不变,即保证像素点的亮度不变,然后再对像素点的第一剩余颜色分量和第二剩余颜色分量对应的颜色分量值进行矫正,使得像素点在矫正后的亮度与矫正前的亮度不会出现过大的差异,进而使得矫正后的色边中不会出现明显的亮度差异区域(考虑到不可能将色边中的全部色边像素点都识别出来,即色边像素点的识别可能出现遗漏,那么,如果直接将矫正像素点的颜色值作为待矫正的像素点的颜色值来矫正,那么矫正后,如果还有未矫正的色边像素点,必然和矫正后的色边像素点出现明显的颜色差异,即色边仍然存在,因此,保持未矫正的色边像素点和矫正后的色边像素点的亮度差异不会太大,从而即使无法对所有的色边像素点进行矫正,也不会出现很大的亮度改变,从视觉上来看,色边在一定程度上被消除)。
在一个实施例中,步骤501所述根据所述目标像素点在多个预设方向上的梯度值查找所述目标像素点对应的矫正像素点,包括:
步骤501A,根据所述目标像素点在多个预设方向上的梯度值是否有效确定所述目标像素点对应的矫正像素点的查找方向。
当目标像素点是目标图像中的色边像素点时,根据目标像素点在多个预设方向上的梯度值是否有效,将梯度值有效的预设方向的反方向确定为矫正像素点的查找方向。具体的,如表1所示。
表1
步骤501B,在所述查找方向上的预设像素范围内查找所述目标像素点对应的矫正像素点。
预设像素范围,为预先设置的像素范围。其中,像素范围,指像素点的个数。例如,预设像素范围为5,查找方向为0°方向,则在0°方向上的5个像素范围内查找矫正像素点。
上述实施例,提供了一种矫正像素点的查找方法,首先根据梯度值是否有效确定查找方向,然后在该查找方向上查找矫正像素点。由于梯度值是否有效反映的是相应的预设方向上是否存在高亮像素点,因此,基于梯度值是否有效可以确定矫正像素点的查找方向。
在一个实施例中,步骤501B所述在所述查找方向上的预设像素范围内查找所述像素点对应的矫正像素点,包括:
将在所述查找方向上的预设像素范围内首次出现的颜色为非色边颜色的像素点确定为所述像素点对应的矫正像素点。
如图3所示,待矫正的色边像素点为ps,查找方向为0°方向,预设像素范围为5,在0°方向首次出现的颜色为非色边颜色的像素点为像素点P2,于是,将P2作为目标像素点ps对应的矫正像素点。
需要说明的是,如果在查找方向上的预设像素范围内无法查找到颜色为非色边颜色的像素点(矫正像素点),则不对待矫正的像素点ps进行矫正。
由于色边像素点的颜色是色边颜色,因此,颜色为非色边颜色的像素点不是色边像素点,可以用来对色边像素点进行矫正。
上述实施例,将首次出现的颜色为非色边颜色的像素点确定为像素点对应的矫正像素点的优势是减少计算量并且提高矫正准确率,可以理解的是,距离色边像素点越近的像素点与色边像素点应当更相似,距离色边像素点越远的像素点与色边像素点越不相似,因此,在首次出现颜色为非色边颜色的像素点时,直接将其设置为矫正像素点,减少计算量的同时还可以提高矫正准确率。
在一个实施例中,在步骤400所述根据所述目标像素点在多个预设方向上的梯度值确定所述目标像素点是否是所述目标图像中的色边像素点之前,还包括:
步骤600,根据所述目标像素点的颜色值计算所述目标像素点的亮度值。
亮度值,反映目标像素点的亮度的大小,亮度值越大,目标像素点的亮度越大,亮度值越小,目标像素点的亮度越小。
示例性的,提供一种计算目标像素点的亮度值的方法,包括:获取红色权重、绿色权重和蓝色权重,其中,红色权重、绿色权重和蓝色权重的和为1;将红色权重与目标像素点的红色值相乘,得到红色亮度;将绿色权重与目标像素点的绿色值相乘,得到绿色亮度;将蓝色权重与目标像素点的蓝色值相乘,得到蓝色亮度;将红色亮度、绿色亮度和蓝色亮度求和,得到目标像素点的亮度值。例如,红色权重、绿色权重和蓝色权重分别为w1、w2和w3,红色值、绿色值和蓝色值分别为R、G和B,于是,亮度值=w1×R+w2×G+w3×B。在一个实施例中,w1、w2和w3的值均为1/3,即通过对红色值、绿色值和蓝色值求均值得到亮度值。
步骤700,获取预设亮度值和所述目标像素点在所述多个预设方向中的每个预设方向上的最大亮度值。
预设亮度值,为预先设置的亮度值。因为色边出现在亮度差异较大的边界处,因此,预先设置一个亮度值,以查看目标像素点周围是否存在亮度较高的像素点,进而判断目标像素点是否是色边像素点。由于色边周围存在亮度较大的区域,因此,可以将预设亮度值设置的相对较大一些。
示例性的,提供一种确定预设亮度值的方法,包括:获取相机拍摄得到的目标场景的多张图像;获取每张图像中色边周围的高亮区域的像素点的颜色值;根据多张图像中色边周围的高亮区域的像素点的颜色值得到预设亮度值。
上述确定预设亮度值的方法,针对目标场景获取多张图像,然后根据该多张图像计算得到预设亮度值,能够得到同一相机在不同的目标场景下的预设亮度值,提高同一相机在不同的目标场景下的预设亮度值的确定的准确率。
示例性的,多个预设方向,为0°方向、45°方向、90°方向、135°方向、180°方向、225°方向、270°方向、315°方向,相较于简单的设置4个预设方向,设置8个预设方向能够提高查找色边像素点的准确率。
预设方向上的最大亮度值,为该预设方向上的亮度值的最大值。
对预设方向上的各个像素点的亮度值进行计算,得到该预设方向上的各个像素点的亮度值。如图4所示,以颜色为色边颜色的像素点为中心,设置一个较大的检测窗口,例如尺寸为11×11的检测窗口,然后对检测窗口覆盖的各个预设方向上的像素点的亮度值进行计算,从而得到各个预设方向上的最大亮度值。
示例性的,提供一种确定检测窗口的尺寸的方法,包括:获取相机拍摄得到的目标场景的多张图像;确定每张图像中色边的像素宽度;根据多张图像中色边的像素宽度得到检测窗口的尺寸。
其中,确定每张图像中色边的像素宽度,包括:对每张图像,确定色边的最大像素宽度和最小像素宽度;将第一宽度权重乘以最大像素宽度,得到第一像素宽度;将第二宽度权重乘以最小像素宽度,得到第二像素宽度;将第一像素宽度和第二像素宽度求和,得到求和结果;根据求和结果得到该图像中色边的像素宽度,其中,第一宽度权重和第二宽度权重的和为1。
例如,最大像素宽度和最小像素宽度分别为5和3,第一宽度权重为0.6,第二宽度权重为0.4,于是,第一宽度为:5×0.6=3,第二宽度为:3×0.4=1.2,将第一宽度和第二宽度求和得到求和结果为4.2,于是,对求和结果取整,得到色边的像素宽度为4。
其中,根据多张图像中色边的像素宽度得到检测窗口的尺寸,包括:计算多张图像中色边的像素宽度的均值,根据多张图像中色边的像素宽度的均值得到检测窗口的尺寸。
其中,根据多张图像中色边的像素宽度的均值得到检测窗口的尺寸,包括:将多张图像中色边的像素宽度的均值乘以2再加1,得到检测窗口的尺寸。
例如,有3张图像,3张图像中色边的像素宽度分别为4、5和6,于是,均值为5,于是确定检测窗口的尺寸为:5×2+1=11。
步骤800,将所述目标像素点在所述多个预设方向中的每个预设方向上的最大亮度值与所述预设亮度值进行比较,得到所述目标像素点在所述多个预设方向中的每个预设方向上的梯度权重。
对某个预设方向,若目标像素点在该预设方向上的最大亮度值大于或等于预设亮度值,则确定目标像素点在该预设方向上的梯度权重为第一权重;若目标像素点在该预设方向上的最大亮度值小于预设亮度值,则确定目标像素点在该预设方向上的梯度权重为第二权重。其中,第一权重大于第二权重,例如,第一权重为0.9,第二权重为0.1;再如,第一权重为1,第二权重为0,即当最大亮度值小于预设亮度值时,认为该预设方向上找不到高亮的像素点。
步骤9000,将所述目标像素点在所述多个预设方向中的每个预设方向上的最大亮度值与所述目标像素点的亮度值进行比较,得到所述目标像素点在所述多个预设方向中的每个预设方向上的初步梯度值。
对某个预设方向,将目标像素点在该预设方向上的最大亮度值减去该目标像素点的亮度值,得到目标像素点在该预设方向上的初步梯度值。
步骤1000,将所述目标像素点在所述多个预设方向中的每个预设方向上的梯度权重和所述目标像素点在相应的预设方向上的初步梯度值相乘,得到所述目标像素点在所述多个预设方向中的每个预设方向上的梯度值。
假设目标像素点的亮度值为p_center,预设亮度值为grad_det_I,则对某个预设方向,获取该预设方向上的最大亮度值,假设为p_max,则目标像素点在该预设方向上的梯度值为:
(p_max-p_center)×compare(p_max,grad_det_I),
其中,compare为对p_max和grad_det_I进行比较,当p_max大于或等于grad_det_I,compare的输出为第一权重,当p_max小于grad_det_I,compare的输出为第二权重。
上述实施例,提供了一种计算像素点在各个预设方向上的梯度值的方法。由于色边通常出现在亮度差异较大的交界处,因此,基于像素点的亮度来计算梯度值,以提高色边像素点判断的准确率。
在一个实施例中,步骤300所述根据所述像素点的颜色值、红绿差值和蓝绿差值确定所述像素点的颜色,包括:
步骤301,获取多个颜色组,所述颜色组中包括预设蓝色值、预设红绿差值和预设蓝绿差值。
预设蓝色值,为预先设置的蓝色值;预设红绿差值,为预先设置的红绿差值;预设蓝绿差值,为预先设置的蓝绿差值。
示例性的,用Yi(BLi,RGi,BGi)表示多个颜色组中的第i个颜色组,其中,BLi表示第i个颜色组中的预设蓝色值,RGi表示第i个颜色组中的预设红绿差值,BGi表示第i个颜色组中的预设蓝绿差值。
以紫色色边为例,设置6个颜色组,分别为:Y1(BL1,RG1,BG1),Y2(BL2,RG2,BG2),Y3(BL3,RG3,BG3),Y4(BL4,RG4,BG4),Y5(BL5,RG5,BG5),Y6(BL6,RG6,BG6)。
预先设置多个颜色组的目的:即使是同样的颜色,由于光照强度不同,即亮度不同,其颜色值也有差异,因此,为了区分不同亮度的颜色值,同时区分偏蓝或者偏红的颜色,选择设置多个颜色组。
步骤302,将所述像素点的蓝色值与目标颜色组中的预设蓝色值进行比较,得到所述目标颜色组对应的蓝色比较结果,所述目标颜色组为所述多个颜色组中的一个待比对颜色组。
待比对颜色组,为多个颜色组中还未参与比对的颜色组。再如上例子,假设还未参与比对的颜色组为Y5(BL5,RG5,BG5)和Y6(BL6,RG6,BG6),于是,待比对颜色组为Y5(BL5,RG5,BG5),Y6(BL6,RG6,BG6),将待比对颜色组中的一个,例如,Y5(BL5,RG5,BG5),作为目标颜色组。
蓝色比较结果,为蓝色值的比较结果。
步骤303,将所述像素点的红绿差值与所述目标颜色组中的预设红绿差值进行比较,得到所述目标颜色组对应的红绿比较结果。
红绿比较结果,为红绿差值的比较结果。
步骤304,将所述像素点的蓝绿差值与所述目标颜色组中的预设蓝绿差值进行比较,得到所述目标颜色组对应的蓝绿比较结果。
蓝绿比较结果,为蓝绿差值的比较结果。
步骤305,根据所述多个颜色组对应的蓝色比较结果、红绿比较结果和蓝绿比较结果确定所述像素点的颜色。
假设像素点的蓝色值用b表示,像素点的红绿差值用r-g表示,像素点的蓝绿差值用b-g表示,BL4=BL1,BG4=BG1,BL5=BL2,BG5=BG2,BL6=BL3,BG6=BG3,RG4,RG5和RG6相同(假设为k1)且为h1到h2之间的一个整数,h1<h2,RG1,RG2和RG3相同(假设为k2)且为h3到h4之间的一个整数,h3>0,h4>0,h3<h4,h4<h1,即对蓝色值和蓝绿差值设置了三个等级,对红绿差值设置了两个等级,从而得到6个颜色组,于是:
其中,“1”表示像素点的颜色为色边颜色;“0”表示颜色点的颜色不是色边颜色。
示例性的,对于紫色色边,6个颜色组设置如下:
BL4=BL1=230,BG4=BG1=5,BL5=BL2=160,BG5=BG2=30,BL6=BL3=80,BG6=BG3=40,RG4=RG5=RG6=200,RG1=RG2=RG3=0,即6个颜色组为:Y1(230,0,5),Y2(160,0,30),Y3(80,0,40),Y4(230,200,5),Y5(160,200,30),Y6(80,200,40)。
继续如上例子,将颜色组中的红绿差值RG1,RG2和RG3设置得大一些,使得颜色组能够检测偏红的紫色色边,RG1,RG2和RG3越大,越偏向于检测偏红的紫色色边,例如,将RG1,RG2和RG3全部设置为0;或者,将颜色组中的红绿差值RG4,RG5和RG6设置得小一些,使得颜色组能够检测偏蓝的紫色色边,RG4,RG5和RG6越小,越偏向于检测偏蓝的紫色色边,,例如,将RG4,RG5和RG6全部设置为200或者255。
上述实施例,预先设置多个颜色组,并根据多个颜色组对应的蓝色比较结果、红绿比较结果和蓝绿比较结果确定像素点的颜色,能够对不同亮度的相同颜色,以及,偏红或者偏蓝的颜色进行识别,提高了颜色的识别率。
在一个实施例中,步骤305所述根据所述多个颜色组对应的蓝色比较结果、红绿比较结果和蓝绿比较结果确定所述像素点的颜色,包括:
若所述目标颜色组对应的蓝色比较结果满足第一条件,所述目标颜色组对应的红绿比较结果满足第二条件,所述目标颜色组对应的蓝绿比较结果满足第三条件,则确定所述目标像素点的颜色为色边颜色。
其中,第一条件,为该目标颜色组中的蓝色比较结果应该满足的条件;第二条件,为该目标颜色组中的红绿比较结果应该满足的条件;第三条件,为该目标颜色组中的蓝绿比较结果应该满足的条件。因此,目标颜色组不同,该目标颜色组对应的第一条件、第二条件和第三条件可能不同。
继续如上例子,假设目标颜色组为Y1(BL1,RG1,BG1),RG1为h3到h4之间的一个整数,于是,第一条件为:目标像素点的蓝色值大于目标颜色组中的预设蓝色值;第二条件为:目标像素点的红绿差值大于目标颜色组中的预设红绿差值;第三条件为:目标像素点的蓝绿差值大于目标颜色组中的预设蓝绿差值。再如,目标颜色组为Y6(BL6,RG6,BG6),其中,RG6为h1到h2之间的一个整数,h3>0,h4>0,h3<h4,h4<h1,于是,第一条件为:目标像素点的蓝色值大于目标颜色组中的预设蓝色值;第二条件为:目标像素点的红绿差值大于目标颜色组中的预设红绿差值;第三条件为:目标像素点的蓝绿差值小于目标颜色组中的预设蓝绿差值。
上述实施例,在目标颜色组对应的比较结果满足条件的时候,便不再对其他待比对颜色组进行比对,减少了确定像素点颜色的计算量,提高了像素点的颜色的确定效率。
在一个实施例中,如图5所示,提供了一种图像中的色边像素点的确定装置5,包括:
获取模块51,用于获取目标图像中的目标像素点的颜色值,所述颜色值包括红色值、绿色值和蓝色值;
计算模块52,用于计算所述目标像素点的红色值和绿色值之间的差值,得到红绿差值,计算所述目标像素点的蓝色值和绿色值之间的差值,得到蓝绿差值;
确定模块53,用于根据所述目标像素点的颜色值、红绿差值和蓝绿差值确定所述像素点的颜色;
色边模块54,用于当所述目标像素点的颜色为色边颜色时,根据所述目标像素点在多个预设方向上的梯度值确定所述目标像素点是否是所述目标图像中的色边像素点,所述色边像素点为所述目标图像中的色边中的像素点。
上述图像中的色边像素点的确定装置,在确定像素点的颜色值之后,还根据颜色值确定了红绿差值和蓝绿差值,相较于单纯的根据颜色值来确定像素点的颜色的方式,这样的方式能够识别出偏红的颜色和偏蓝的颜色,使得对颜色的识别更加的灵活,在一定程度上避免了色边像素点的遗漏,最后考虑到色边是出现在亮度差异较大的交界处,这些位置必然存在一定的梯度,因此,在确定像素点的颜色为色边颜色之后,还根据多个预设方向的梯度值来进一步确定该像素点是否是色边像素点,在一定程度上提高了色边像素点的识别率。
在一个实施例中,所述色边模块54,具体用于:判断所述目标像素点在相应的预设方向上的梯度值是否有效;根据所述目标像素点在多个预设方向上的梯度值是否有效确定所述目标像素点是否是所述目标图像中的色边像素点。
在一个实施例中,所述色边模块54,具体用于:获取多个梯度组,所述梯度组中包括预设梯度值和预设亮度值;将所述目标像素点在目标预设方向上的梯度值与目标梯度组中的预设梯度值进行比较,得到所述目标像素点在所述目标预设方向上的目标梯度组的梯度比较结果,所述目标梯度组为所述多个梯度组中的一个待比对梯度组,所述目标预设方向为所述多个预设方向中的一个待比对预设方向;将所述目标像素点的亮度值与所述目标梯度组中的预设亮度值进行比较,得到所述目标像素点在所述目标预设方向上的目标梯度组的亮度比较结果;根据所述目标像素点在所述目标预设方向上的所述多个梯度组的梯度比较结果和亮度比较结果确定所述目标像素点在所述目标预设方向上的梯度值是否有效。
在一个实施例中,所述装置5,还包括:矫正模块,用于当所述目标像素点是所述目标图像中的色边像素点时,对所述目标像素点的颜色值进行矫正。
在一个实施例中,所述矫正模块,具体用于:根据所述目标像素点在多个预设方向上的梯度值查找所述目标像素点对应的矫正像素点;根据所述目标像素点对应的矫正像素点的颜色值对所述目标像素点的颜色值进行矫正。
在一个实施例中,所述矫正模块,具体用于:确定目标颜色分量,第一剩余颜色分量和第二剩余颜色分量,所述目标颜色分量,所述第一剩余颜色分量和所述第二剩余颜色分量分别为红色分量、绿色分量以及蓝色分量中的一个;计算所述矫正像素点中的目标颜色分量对应的颜色分量值与所述矫正像素点中的第一剩余颜色分量对应的颜色分量值的差值,得到第一差值;计算所述矫正像素点中的目标颜色分量对应的颜色分量值与所述矫正像素点中的第二剩余颜色分量对应的颜色分量值的差值,得到第二差值;计算所述目标像素点的目标颜色分量对应的颜色分量值与所述第一差值的差值,得到所述目标像素点的第一剩余颜色分量对应的颜色分量值;计算所述目标像素点的目标颜色分量对应的颜色分量值与所述第二差值的差值,得到所述目标像素点的第二剩余颜色分量对应的颜色分量值。
在一个实施例中,所述矫正模块,具体用于:根据所述目标像素点在多个预设方向上的梯度值是否有效确定所述目标像素点对应的矫正像素点的查找方向;在所述查找方向上的预设像素范围内查找所述目标像素点对应的矫正像素点。
在一个实施例中,所述矫正模块,具体用于:将在所述查找方向上的预设像素范围内首次出现的颜色为非色边颜色的像素点确定为所述像素点对应的矫正像素点。
在一个实施例中,所述装置5,还包括:梯度值确定模块,用于:根据所述目标像素点的颜色值计算所述目标像素点的亮度值;获取预设亮度值和所述目标像素点在所述多个预设方向中的每个预设方向上的最大亮度值;将所述目标像素点在所述多个预设方向中的每个预设方向上的最大亮度值与所述预设亮度值进行比较,得到所述目标像素点在所述多个预设方向中的每个预设方向上的梯度权重;将所述目标像素点在所述多个预设方向中的每个预设方向上的最大亮度值与所述目标像素点的亮度值进行比较,得到所述目标像素点在所述多个预设方向中的每个预设方向上的初步梯度值;将所述目标像素点在所述多个预设方向中的每个预设方向上的梯度权重和所述目标像素点在相应的预设方向上的初步梯度值相乘,得到所述目标像素点在所述多个预设方向中的每个预设方向上的梯度值。
在一个实施例中,所述梯度值确定模块,具体用于:获取多个颜色组,所述颜色组中包括预设蓝色值、预设红绿差值和预设蓝绿差值;将所述像素点的蓝色值与目标颜色组中的预设蓝色值进行比较,得到所述目标颜色组对应的蓝色比较结果,所述目标颜色组为所述多个颜色组中的一个待比对颜色组;将所述像素点的红绿差值与所述目标颜色组中的预设红绿差值进行比较,得到所述目标颜色组对应的红绿比较结果;将所述像素点的蓝绿差值与所述目标颜色组中的预设蓝绿差值进行比较,得到所述目标颜色组对应的蓝绿比较结果;根据所述多个颜色组对应的蓝色比较结果、红绿比较结果和蓝绿比较结果确定所述像素点的颜色。
在一个实施例中,如图6所示,提供了一种计算机设备,该计算机设备具体可以是终端或服务器。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,存储器包括非易失性存储介质和内存储器,该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现图像中的色边像素点的确定方法。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行图像中的色边像素点的确定方法。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本申请提供的图像中的色边像素点的确定方法可以实现为一种计算机程序的形式,计算机程序可在如图6所示的计算机设备上运行。计算机设备的存储器中可存储组成图像中的色边像素点的确定装置的各个程序模板。比如,获取模块51、计算模块52和确定模块53。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
获取目标图像中的目标像素点的颜色值,所述颜色值包括红色值、绿色值和蓝色值;
计算所述目标像素点的红色值和绿色值之间的差值,得到红绿差值,计算所述目标像素点的蓝色值和绿色值之间的差值,得到蓝绿差值;
根据所述目标像素点的颜色值、红绿差值和蓝绿差值确定所述像素点的颜色;
当所述目标像素点的颜色为色边颜色时,根据所述目标像素点在多个预设方向上的梯度值确定所述目标像素点是否是所述目标图像中的色边像素点,所述色边像素点为所述目标图像中的色边中的像素点。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
获取目标图像中的目标像素点的颜色值,所述颜色值包括红色值、绿色值和蓝色值;
计算所述目标像素点的红色值和绿色值之间的差值,得到红绿差值,计算所述目标像素点的蓝色值和绿色值之间的差值,得到蓝绿差值;
根据所述目标像素点的颜色值、红绿差值和蓝绿差值确定所述像素点的颜色;
当所述目标像素点的颜色为色边颜色时,根据所述目标像素点在多个预设方向上的梯度值确定所述目标像素点是否是所述目标图像中的色边像素点,所述色边像素点为所述目标图像中的色边中的像素点。
需要说明的是,上述图像中的色边像素点的确定方法、图像中的色边像素点的确定装置、计算机设备及计算机可读存储介质属于一个总的发明构思,图像中的色边像素点的确定方法、图像中的色边像素点的确定装置、计算机设备及计算机可读存储介质实施例中的内容可相互适用。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。