一种将数字彩色图像转换成灰度图像的方法转让专利

申请号 : CN201210086250.2

文献号 : CN102708554B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴自然

申请人 : 吴自然

摘要 :

本发明提供了一种将数字彩色图像转换成灰度图像的方法,将彩色图像的每个像素均映射到RGB空间,对空间区域进行分区,得到分类原型;将RGB空间上与数字彩色图像的每个像素对应的点归类到分类原型;将分类原型作为一维弹簧系统的节点,通过爬山法则建立最优化实例,利用距离倒数权重法计算每个像素的灰度值。本发明从被转换的彩色图像的像素在色彩空间的分布密度出发,对图像在色彩空间上的对应点进行归类,然后使用弹簧系统根据能量最小化原则,实现从三维空间点到一维空间点的映射,并在最后对每个像素进行灰度值的计算。该方法对不同图像的鲁棒性好,自适应性强,计算资源使用率较低,不需要人工参数的调整,并在实际中获得了较好的转换效果。

权利要求 :

1.一种将数字彩色图像转换成灰度图像的方法,其特征在于,包括以下步骤:(1)将数字彩色图像的每个像素均映射到RGB空间上,得到三维直方图,并对该三维直方图进行高斯滤波平滑处理,形成连续的非零空间区域;

(2)根据密度分布对步骤(1)中所得到的非零空间区域进行分区,得到多个独立的高密度区域,并根据高密度区域的体积大小选择若干个高密度区域作为分类原型;

(3)使用空间扩张法,将RGB空间上与数字彩色图像的每个像素对应的点归类到步骤(2)中已选取的分类原型中;

(4)将分类原型作为一维弹簧系统的节点,随机建立多个一维弹簧系统实例,并从多个一维弹簧系统实例中选择在动态平衡状态时压力总和最小的实例作为最优化实例;

(5)建立最优化实例中各节点与0~255的灰度值的对应关系,得到每个分类原型所对应的灰度值ui;

(6)使用如下公式计算数字彩色图像中任一像素x的灰度值u(x) :p

其中, N为分类原型的个数,i、j为分类原型的编号, ,d(x,xi) 为像素x 在RGB空间上与其所在的分类原型i的质心之间的距离,p为指数参数, ui为分类原型i所对应的灰度值, ,d(x,xj)p为像素x 在RGB空间上与其所在的分类原型j的质心之间的距离。

2.根据权利要求1所述的将数字彩色图像转换成灰度图像的方法,其特征在于,步骤(2)中采用空间密度估计法进行分区。

3.根据权利要求1所述的将数字彩色图像转换成灰度图像的方法,其特征在于,步骤(3)中所述的空间扩张法的流程如下:(3.1)将所有分类区域用不同的非零数字标号表示,同一分类区域中的点拥有相同的标号,空间中不属于任何分类区域的点标号为0;

(3.2)设置状态标识f=1,设置当前点为整个空间的任意一个顶点;

(3.3)如果当前点标号为0,令状态标识f=0;

(3.4)检查当前点的所有相邻点,如果其中有一个相邻点标号不为0,则将当前点标号设置为与该非零点的标号相同,将当前点归类到该相邻点所在的分类区域;

(3.5)判断空间中是否还存在未归类的点,若是,进入步骤(3.6);若否,转入步骤(3.7);

(3.6)令当前点为下一点,重复执行步骤(3.3)-(3.5),直至遍历整个空间的所有点;

(3.7)判断状态标识f是否等于0,若是,转入步骤(3.1);若否,结束。

4.根据权利要求1所述的将数字彩色图像转换成灰度图像的方法,其特征在于,步骤(4)中一维弹簧系统的压力总和为其中,m, n为节点的标号,M 为节点的总数,dmn(X) 为两节点之间的距离, ≥ 0为权重系数,其值为节点m和n各自所拥有的点个数的乘积;δmn是节点m和n之间的理想距离,即三维空间中每个分类原型质心之间的距离; 为节点m 和节点n之间的压力。

5.根据权利要求1所述的将数字彩色图像转换成灰度图像的方法,其特征在于,步骤(4)中采用爬山法则从多个一维弹簧系统实例中选出最优化实例。

说明书 :

一种将数字彩色图像转换成灰度图像的方法

技术领域

[0001] 本发明属于数字图像领域,具体涉及一种将数字彩色图像转换成灰度图像的方法。

背景技术

[0002] 在数字图像领域,彩色图像和灰度图像在实际生活中有不同的应用范围。目前很多图像处理产品的核心算法都是以数字灰度图像为输入数据,尤其是当需要图像的梯度、边缘的信息时,灰度图像就显得尤为重要,因为梯度、边缘的计算都只需要单通道的图像信息。而梯度、边缘信息,是进行图像增强、图像识别的重要信息,并广泛应用于视频监控、人机交互、计算机智能等很多方面。同时,同一副图像的灰度图像所占用存储空间仅是其彩色图像的1/3,在很多情况下需要使用灰度图像,可以节约大量储存空间。
[0003] 目前将彩色图像转换为灰度图像的普遍做法是计算彩色图像中每个像素的亮度,即像素的RGB值在三维色彩空间中的模。然而该方法最大的问题在于,不同的色彩可能会有相同的亮度值,在转换为灰度图像以后,这些色彩之间的差异和边缘就会消失,于是造成严重的信息损失。因此一些学者提出了不同的灰度图像转换方法,有的基于图像的全局特征,有的基于图像的区域特征。目前来说,基于全局特征的方法转换效果并不理想,而基于区域特征的方法则会产生图像低频区域波动的负面效果。Amy Gooch等人提出了一种改进型的区域方法,称为Color2gray方法,相对效果较好。然而该方法在处理高分辨率图像时过于消耗计算资源,并不具有很强的实用性。

发明内容

[0004] 本发明针对上述现有技术的不足,提供了一种将数字彩色图像转换成灰度图像的方法,该方法基于输入彩色图像色彩分布的全局特征来实现,并且转换效果理想。
[0005] 本发明是通过如下技术方案实现的:
[0006] 一种将数字彩色图像转换成灰度图像的方法,其特征在于,包括以下步骤:
[0007] (1)将数字彩色图像的每个像素均映射到RGB空间上,得到三维直方图,并对该三维直方图进行高斯滤波平滑处理,形成连续的非零空间区域;
[0008] (2)根据密度分布对步骤(1)中所得到的非零空间区域进行分区,得到多个独立的高密度区域,并根据高密度区域的体积大小选择若干个高密度区域作为分类原型;
[0009] (3)使用空间扩张法,将RGB空间上与数字彩色图像的每个像素对应的点归类到步骤(2)中已选取的分类原型中;
[0010] (4)将分类原型作为一维弹簧系统的节点,随机建立多个一维弹簧系统实例,并从多个一维弹簧系统实例中选择在动态平衡状态时压力总和最小的实例作为最优化实例;
[0011] (5)建立最优化实例中各节点与0~255的灰度值的对应关系,得到每个分类原型所对应的灰度值ui;
[0012] (6)使用如下公式计算数字彩色图像中任一像素x 的灰度值u(x) :
[0013]
[0014] 其中, N为分类原型的个数,i、j为分类原型的编号, ,d(x,xi)p为像素x 在RGB空间上与其所在的分类原型i 的质心之间的距离,p 为指数参数, ui为分类p原型i所对应的灰度值, ,d(x,xj) 为像素x在RGB空间上与其所在的分类
原型j 的质心之间的距离。
[0015] 进一步的,步骤(2)中采用空间密度估计法进行分区。
[0016] 进一步的,步骤(3)中所述的空间扩张法的流程如下:
[0017] (3.1)将所有分类区域用不同的非零数字标号表示,同一分类区域中的点拥有相同的标号。空间中不属于任何分类区域的点标号为0。
[0018] (3.2)设置状态标识f=1,设置当前点为整个空间的任意一个顶点;
[0019] (3.3)如果当前点标号为0,令状态标识f=0;
[0020] (3.4)检查当前点的所有相邻点,如果其中有一个相邻点标号不为0,则将当前点标号设置为与该非零点的标号相同,将当前点归类到该相邻点所在的分类区域;
[0021] (3.5)判断空间中是否还存在未归类的点,若是,进入步骤(3.6);若否,转入步骤(3.7);
[0022] (3.6)令当前点为下一点,重复执行步骤(3.3)-(3.5),直至遍历整个空间的所有点;
[0023] (3.7)判断状态标识f 是否等于0,若是,转入步骤(3.1);若否,结束。
[0024] 进一步的,步骤(4)中一维弹簧系统的压力总和为其中,m,n 为节点的标号,M 为节点的总数,dmn(X) 为两节点之间的距离,≥ 0为权重系数,其值为节点m和n各自所拥有的点个数的乘积;δmn是节点m和n之间的理想距离,即三维空间中每个分类原型质心之间的距离; 为节点m 和节点n 之间的压力。
[0025] 进一步的,步骤(4)中采用爬山法则从多个一维弹簧系统实例中选出最优化实例。
[0026] 本发明所述的将数字彩色图像转换成灰度图像的方法,从被转换的彩色图像的像素在色彩空间的分布密度出发,对图像在色彩空间上的对应点进行归类,然后使用弹簧系统根据能量最小化原则,实现从三维空间点到一维空间点的映射,并在最后对每个像素进行灰度值的计算。该方法是一种基于输入图像色彩分布特征的全局方法,对不同图像的鲁棒性好,自适应性强,计算资源使用率较低,不需要人工参数的调整,并在实际中获得了较好的转换效果。

附图说明

[0027] 图1为本发明所述转换方法的流程示意图;
[0028] 图2为非零空间区域示意图;
[0029] 图3为空间密度估计法的二维表示图。

具体实施方式

[0030] 下面结合附图和具体实施方式对本发明做进一步详细的说明。
[0031] 如图1所示,本发明所述的将数字彩色图像转换成灰度图像的方法,包括以下步骤:
[0032] (1) 将数字彩色图像的每个像素都映射到对应的RGB空间上,得到三维直方图,并对该三维直方图进行高斯滤波平滑处理以形成连续的非零空间区域。非零空间区域是指由空间中所有非零点所组成的区域,如图2中所示的块状区域代表的就是非零空间区域。本发明中高斯滤波平滑处理中的高斯滤波算子是一个3*3*3的三维算子,滤波计算公式如下:
[0033]
[0034] 其中, D为平滑后的三维直方图,I 为平滑前的三维直方图,h 为3*3*3的高斯算子。(x,y,z) 为三维直方图的点的坐标,(i,j,k)为高斯算子的点的坐标。
[0035] (2)根据密度分布对步骤(1)中所得到的非零空间区域进行分区,得到多个独立的高密度区域,并根据高密度区域的体积大小选择若干个高密度区域作为分类原型。
[0036] 由于空间中的点的分布密度是不同的,有些地方比较集中,有些地方比较疏散,滤波以后密度集中的地方表现为点的数值较高,在三维直方图中表现为出现顶点(或峰值)。本发明把每个点集中的区域都单独划分出来,作为高密度区域。即高密度区域是指在非零空间区域中相对于其他区域来说所包含的点的数值较高的区域,其往往是直方图的顶点附近的区域。高密度区域的体积,实质是区域中点的个数,点的个数多的区域体积较大。当然点分布的集中和疏散是相对意义的,没有绝对的标准,不同的分区方法会对应不同的估计方式,得出的分区结果也不同。
[0037] 本发明将所有高密度区域的体积进行从大到小排序,然后从大到小选取若干个作为分类原型。分类原型的个数视具体应用和对象而定,其取值范围为5~50,一般可以选择与彩色图像中颜色的种类数量相等的个数。过多的分类会导致在输出结果中,本应是低频的区域出现较大的灰度波动;而过少的分类则会导致彩色图像中不同颜色之间的色彩边缘在灰度图中变得不明显甚至消失。本发明后面提及的弹簧系统对上述问题有一定的容错性,但在选择分类数量时仍应尽可能根据图像中的色彩数量。除去一些极端情况,将分类数量设置为10是较为折中和可行的方法。
[0038] 根据密度分布对非零空间区域进行分区的方法有很多种,可以采用现有技术中的完全链接法、阈值法和分水岭法等。本发明中采用的是空间密度估计法,该方法用于估计数字空间中两个点的集合之间的密度,以判断两个区域是否可以合并为一个。具体的讲,如图3所示,设空间中两个点的集合为G1、G2, G1和G2的质心分别为C1、C2,将C1和C2的连线六等分,六等分点从C1到C2依次标记为C6、C4、C3、C5、C7;分别过C1、C4、C5、C2作垂直于C1C2的平面,标记为P1、P2、P3、P4;将相邻两个平面之间的空间区域分别标记为Z1、Z2、Z3。
[0039] 对Z2和Z1、Z3的密度进行对比,从而判断这两个集合是否可以链接在一起。首先我们先要统计每个区域的点的个数,即相邻两个垂直平面之间的点的个数。判断一点是否在两个平面之间,我们通过如下方法进行判断:
[0040] 考虑一个平面方程
[0041] ,其中A、B、C、D均为实数。
[0042] 由于P1、P2、P3、P4均平行,可知上述四个平面的方式的A、B、C 均相等。所以对于任意相邻的Pi和Pj,方程分别为:
[0043]
[0044] 点p0到这两平面的距离为:
[0045]
[0046] 如果点p0在Pi和Pj之间,则ti *tj < 0。
[0047] 上述方法可统计出在区域Z1、Z2、Z3中点的数量ni,其中i=1,2,3。
[0048] 为了估计点的密度,需要求出每个区域中点分布的体积,然而计算分布体积非常的困难,本发明使用点到中心的平均距离来替代。每个区域中所有点到中心点(即Z1、Z2、Z3分别对应的C6、C3、C7)的平均距离记为d1、d2、d3,于是每个区域的密度可以写成[0049]
[0050] 其中i=1,2,3,p为指数参数,为正实数。
[0051] 然后,根据预先制定的比较策略,对各个区域的密度进行比较 dens2~f(dens1, dens3),其中~代表比较符号,函数f()代表对两个密度的权重方式。
[0052] 比如,预先制定的比较策略可以为
[0053] dens2≥f(dens1, dens3)
[0054] f(dens1, dens3)=(dens1+dens3)/2
[0055] 即比较符号为大于等于,权重方式为取平均值。当然本发明也可以使用其他的比较策略。若各个区域的密度满足比较策略,则认为两个集合可以合并为一个。采用空间密度估计法对非零空间区域中所有点的集合进行处理后,即可实现分区。
[0056] (3)使用空间扩张法,将RGB空间上与彩色图像的每个像素对应的点,归类到步骤(2)中已选取的分类原型中。
[0057] 假设有限数字空间中有若干个独立的分类区域,空间扩张法是指将这些分类区域同时进行扩张,使得这些分类区域互相接触并充满整个有限数字空间。空间扩张法用于将空间中的离散点快速归类到最近的分类区域中。具体的讲,空间扩张法的流程如下:
[0058] (3.1)将所有分类区域用不同的非零数字标号表示,同一分类区域中的点拥有相同的标号。空间中不属于任何分类区域的点标号为0。
[0059] (3.2)设置状态标识f=1,设置当前点为整个空间的任意一个顶点;
[0060] (3.3)如果当前点标号为0,令状态标识f=0。
[0061] (3.4)检查当前点的所有相邻点,如果其中有一个相邻点标号不为0,则将当前点标号设置为与该非零点的标号相同,将当前点归类到该相邻点所在的分类区域。
[0062] (3.5)判断空间中是否还存在未归类的点,若是,进入步骤(3.6);若否,转入步骤(3.7);
[0063] (3.6)令当前点为下一点,重复执行步骤(3.3)-(3.5),直至遍历整个空间的所有点。
[0064] (3.7)判断状态标识f 是否等于0,若是,转入步骤(3.1);若否,结束。
[0065] (4)将分类原型作为一维弹簧系统的节点,随机建立多个一维弹簧系统实例,并从多个一维弹簧系统实例中选择在动态平衡状态时压力总和最小的实例作为最优化实例;
[0066] 本发明依据弹簧系统(spring系统)理论,使用步骤(3)中的具体数据,建立一维弹簧系统实例。本发明所述的弹簧系统是一维系统,它由若干节点和每对节点之间的连线组成,每个节点对应RGB三维空间中的一个分类原型。每条连线可看作是一根弹簧,使得每两个节点之间都存在压力。
[0067] 一个弹簧系统中的压力总和σ(X) 由卡鲁斯卡尔压力(Kruskal’s stress)公式给出:
[0068]
[0069] 其中,m, n为节点的标号,M为节点的总数,dmn(X)为两节点之间的距离,≥ 0为权重系数,其值为节点m 和n(即两个分类模型)各自所拥有的点个数的乘积;δmn是节点m 和n 之间的理想距离,即三维空间中每个分类原型质心之间的距离; 为节点m 和节点n 之间的压力。
[0070] 计算一维弹簧系统实例在动态平衡状态时的压力总和的具体方法如下:
[0071] (4.1)设一维弹簧系统拥有n 个节点,计算每两个节点之间的距离,并计算压力总和σ(X)。
[0072] (4.2)运行一维弹簧系统实例,即使用理想距离δmn最小化压力总和,具体方法为:
[0073] (a)计算出各节点之间的压力,将这些压力作用在每个节点上;由于每个节点均和多个节点相连,一个节点会同时受到多个压力作用。由力学原理可计算出每个节点所受到的压力和,并使其在根据受到的压力和进行移动。根据能量最小化法则,弹簧系统会朝着压力总和最小的形态进行变化。
[0074] (b)节点移动后,更新所有的节点距离和压力总和;由于由于节点移动,节点距离和压力总和在不断变化,因此节点每移动一次,节点距离和压力总和就要更新一次。
[0075] (c)重复执行(a)-(b),直到整个系统到达动态平衡状态;此时所有节点不再移动,一维弹簧系统的压力总和最小。
[0076] 本发明采用爬山法则(hill-climbing法则),从多个一维弹簧系统实例中选出最优化实例。具体方法为:
[0077] (A)从多个一维弹簧系统实例中选择一个弹簧系统实例作为前台弹簧系统实例,其余作为后台弹簧系统实例,所有实例均为随机初始化。
[0078] (B)平行运行所有一维弹簧系统实例。
[0079] (C)当某个后台实例的压力总和小于前台实例时,删除当前前台实例并将该后台实例推到前台;
[0080] 当一个后台实例运行一定时间(该时间为预设参数)后仍无法获得比前台实例更小的压力总和,则停止该后台实例并启用一个新的后台实例;
[0081] 当前台实例运行一定时间以后(该时间同样为预设参数),无后台实例可以替代前台,则将该前台实例作为最优化实例。
[0082] (5)建立最优化实例中各节点与0~255的灰度值的对应关系,得到各分类原型在最优化实例中所对应的灰度值。
[0083] 本发明将一维弹簧系统的节点距离的数值范围对应于灰度值的0~255的范围,那么弹簧系统的每个节点都对应一个灰度值,也就是每个分类原型在一维弹簧系统中都对应一个灰度值,于是就可以将分类原型在三维空间中的位置映射到一维灰度空间中。
[0084] 具体的讲,首先选择一维弹簧系统端部的一个节点作为头节点,选择距离头节点最远的节点作为尾节点,令头节点与灰度值0对应,尾节点与灰度值255对应。设一维弹簧系统内部任意一个节点α与头节点之间的距离为L,头节点与尾节点之间的距离为H,则节点α 的灰度值为255*L/H。
[0085] 本发明将最优化实例中每个节点所对应的灰度值作为分类原型映射到一维弹簧系统的灰度值,即得到分类原型在一维弹簧系统中所对应的灰度值。
[0086] (6)根据各分类原型在最优化实例中所对应的灰度值,使用谢帕德(Shepard)的距离倒数权重法(inverse distance weighting)计算彩色图像中每个像素的灰度值,从而得到灰度图像。
[0087] 计算像素x 的灰度值的具体公式如下:
[0088]
[0089] 其中, ,N 为步骤(2)中选择的分类原型的个数,i、j 为分类原型的p编号,d(x,xi) 为像素点x 在RGB空间上与其所在的分类原型质心之间的距离。ui为分类p
原型i在步骤(5)中的所述的最优化实例中对应的灰度值。 ,d(x,xj) 为像素x 在RGB空间上与其所在的分类原型的质心之间的距离。p 为指数参数,一般预设为1。
[0090] 实施例:
[0091] 本发明采用莫奈的油画《日出》的数字图像作为实施例的转换对象。该数字图像分辨率为1000*769,格式为RGB 24位。在该油画中,靛青色用来表示水面,朱红色用来表示太阳及其在水面的反射。如果根据图像的亮度来获得其灰度图,由于图中的朱红色和靛青色的亮度很接近,会导致太阳和反射的内容在灰度图中完全消失。而本方法可以很好地表现出朱红色和靛青色之间的差别。具体处理流程如下:
[0092] (1)将彩色图像的每个像素都映射到对应的RGB空间上,得到三维直方图,并对该三维直方图进行高斯滤波平滑处理以形成连续的非零空间区域。
[0093] 将图像中的每个像素映射到256*256*256的三维空间中,像素的RGB值为对应点的坐标。由于可能有多个像素拥有相同的RGB值,所以对应点的坐标为相同RGB值的像素的总数。例如,假设有5个像素的RGB值为(0,0,0),则在三维空间中点(0,0,0)的数值为5。这样,相当于建立了一个关于图像RGB值的三维的直方图。
[0094] 为了加快处理速度,本实施例使用64*64*64的三维空间来代替256*256*256的三维空间。相当于将原256*256*256的空间进行压缩,空间中的每个点对应一个RGB数值区域。如点(0,0,0)对应RGB值(0~3,0~3,0~3)共64个值,而该点的值就是上述RGB值的区域中的像素的个数。
[0095] 之后采用高斯算子对得到的三维直方图进行高斯滤波平滑处理以形成连续的非零空间区域。
[0096] (2)根据密度分布对步骤(1)中所得到的非零空间区域进行分区,得到多个独立的高密度区域,并根据高密度区域的体积大小选择若干个高密度区域作为分类原型。
[0097] 由于图像较大,使用完全链接法和空间密度估计法分区将消耗大量内存(大于普通计算机的内存总量),本发明使用占用资源相对较少的分水岭法对非零空间区域进行分区,设定分类原型的数量为10,得到各分类原型的质心坐标和像素个数,如表1所示。
[0098] 表1
[0099]
[0100] (3)使用空间扩张法,将RGB空间上与彩色图像的每个像素对应的点,归类到步骤(2)中已选取的分类原型中。
[0101] (4)随机建立多个一维弹簧系统实例,并从多个一维弹簧系统实例中选择在平衡状态时压力总和最小的实例作为最优化实例;
[0102] 一维弹簧系统各节点之间的数据如表2所示,其中两节点间的理想距离即为质心距离,两节点之间的权重为对应两个分类模型所包含的像素个数的乘积。根据表2中的数据即可建立多个一维弹簧系统实例。
[0103] 本实施例中建立了一个前台实例和一个后台实例。当一个后台实例运行了2000次循环,即更新系统状态2000次以后仍然无法获得比前台实例更小的压力总和,则结束这个后台实例并开始一个新的。当100个后台实例运行并被结束后仍无法取代前台实例时,则就认为这个前台实例是最优化实例。
[0104] 表2
[0105]
[0106] (5)将所有分类原型映射至最优化实例,得到各分类原型在最优化实例中所对应的灰度值。
[0107] 将最优化实例中每个节点的位置换算成对应的灰度值,结果如表3所示。
[0108] 表3
[0109]
[0110] (6)由谢帕德的距离倒数权重权重法计算每个像素的值,得到灰度图像。
[0111] 本发明不仅局限于上述具体实施方式,本领域一般技术人员根据本发明公开的内容,可以采用其它多种具体实施方式实施本发明,因此,凡是采用本发明的设计结构和思路,做一些简单的变化或更改的设计,都落入本发明保护的范围。