发明名称 中医舌诊用的舌头彩色数码照片的舌体分割提取方法
摘要 本发明属于中医舌诊用的舌头彩色图像处理技术领域。具体特征在于,用两步对舌体进行分割提取:首先得到舌体的粗略轮廓图,其次用二维形变轮廓模型进行较准确的分割。在第一步中,用分水岭变换对图像的红色通道进行处理,得到粗略的舌体轮廓,在处理时先用饱和度图阈值求图像的标记图像,再用标记图像对图像的梯度图进行强制最小值,得到待分割图像,然后再用分水岭变换方法对待分割图像采用在图像纵剖面的采样点—灰度值曲线上,实施分水岭变换,得到一个由各纵剖面上的分水岭构成的集合,该分水岭集合中的一片连通区域即为舌体区域,其边界就是舌体粗略轮廓图。试验证明,图像结果非常准确,适用于不同年龄层次的健康和疾病人群。
申请公布号 CN100375979C 申请公布日期 2008.03.19
申请号 CN200610113119.5 申请日期 2006.09.15
申请人 清华大学 发明人 白净;张永红;吴佳
分类号 G06K9/34(2006.01);A61B5/117(2006.01) 主分类号 G06K9/34(2006.01)
代理机构 代理人
主权项 1.中医舌诊用的舌头彩色数码照片的舌体分割提取方法,其特征在于,依次含有以下步骤:步骤(1),向计算机输入用数码相机采集好的舌头的彩色图片;步骤(2),在计算中设定以下两个调整参数:分割速度,从慢到快分为9档,相应的取值范围为2到10的整数,代表降采样的倍数;舌体轮廓曲线光滑度,从粗糙到光滑分为5档,相应的取值范围为1到5的整数,代表该曲线迭代的次数;步骤(3),利用分水岭变换方法按以下步骤对输入彩色图像的红色通道进行处理,得到粗略的舌体轮廓图:步骤(3.1),把输入彩色图像中的每个像素点的红色分量取出,按照像素的排列方式组成一张灰度图R(x,y),表示输入彩色图像的红色通道;步骤(3.2),按照设定的降采样倍数M对图像进行降采样,得到降采样后对应的表示在灰度图中的红色通道的值f(x,y)=R(Mx,My),其中,M为2~10之间的整数,(x,y)为降采样后的像素点的坐标,R(Mx,My)为降采样前图像在(Mx,My)点的红色分量;步骤(3.3),对所述灰度图f(x,y),按下述利用标记控制的分水岭变换方法求出舌体的粗糙轮廓,建立舌体轮廓模型:步骤(3.3.1),计算灰度图f(x,y)的梯度图g(x,y):g(x,y)=f(x,y)步骤(3.3.2),按以下步骤计算标记函数,用以标记灰度图f(x,y)中的目标和对应的背景:步骤(3.3.2.1),从输入彩色图像RGB值计算饱和度St(x,y):<maths num="0001"><![CDATA[<math><mrow><mi>St</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>Max</mi><mrow><mo>(</mo><mi>R</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>,</mo><mi>G</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>,</mo><mi>B</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>-</mo><mi>Min</mi><mrow><mo>(</mo><mi>R</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>,</mo><mi>G</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>,</mo><mi>B</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow><mrow><mi>Max</mi><mrow><mo>(</mo><mi>R</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>,</mo><mi>G</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>,</mo><mi>B</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow></mfrac></mrow></math>]]></maths>其中,Max(R(x,y),G(x,y),B(x,y))≠0,St(x,y)为像素(x,y)点的饱和度,R(x,y),G(x,y),B(x,y)分别表示像素(x,y)点的红色、绿色、蓝色分量;步骤(3.3.2.2),根据设定的阈值St<sub>th</sub>,对于每个像素点(x,y)的饱和度进行判别,得到标记图像f<sub>m</sub>(x,y):<img file="C2006101131190003C1.GIF" wi="1071" he="142" />饱和度阈值St<sub>th</sub>的取值为St<sub>th</sub>=0.4;步骤(3.3.3),对梯度图g(x,y)用标记图f<sub>m</sub>(x,y)进行强制最小值,得到待分割图f<sub>min</sub>(x,y):f<sub>min</sub>(x,y)=g(x,y)*f<sub>m</sub>(x,y),f<sub>m</sub>(x,y)为标记时,f<sub>min</sub>(x,y)=0,f<sub>m</sub>(x,y)非标记时,f<sub>min</sub>(x,y)=g(x,y);步骤(3.3.4),按以下步骤对灰度图f<sub>min</sub>(x,y)用分水岭变换的方法从中提取出一片连通区域构成的舌体区域:步骤(3.3.4.1),在X-Y平面上,对灰度图.f<sub>min</sub>(x,y)沿着Y轴按给定的ΔY单位步长值作纵剖面图;步骤(3.3.4.2),在所述的纵剖面上,得到一条以采样点为横坐标,相应的灰度值作为纵坐标的曲线;步骤(3.3.4.3),在所述采样点一灰度图f<sub>min</sub>(x,y)曲线上取出最小灰度值作为灰度阈值N,把f<sub>min</sub>(x,y)分为大于灰度阈值和小于灰度阈值上、下两个部分,构成的二值图像:<img file="C2006101131190003C2.GIF" wi="674" he="141" />该二值图像T<sub>N</sub>(x,y)的前一时刻的二值图像为<img file="C2006101131190003C3.GIF" wi="876" he="142" />其中,Step为增加的步长,在1~5间取值;步骤(3.3.4.4),把步骤(3.3.4.3)所得两个相邻时刻的二值图像做异或操作,即T<sub>N-Step</sub>(x,y)≠T<sub>N</sub>(x,y)时,S<sub>j</sub>(x,y)等于1,T<sub>N-Step</sub>(x,y)=T<sub>N</sub>(x,y)时,S<sub>j</sub>(x,y)等于0,如果,S<sub>j</sub>(x,y)等于0,则继续增加步长,再作判断,一直到S<sub>j</sub>(x,y)等于1,此时,S<sub>j</sub>(x,y)是分水岭,j代表步长,像素点(x,y)是分水岭的位置,像素点(x,y)对应的灰度值属于一片连通的舌体区域的一部分;步骤(3.3.4.5),重复步骤(3.3.4.3)和步骤(3.3.4.4),得到所有的分水岭,构成一个分水岭的集合S(x,y)=S<sub>1</sub>(x,y)·S<sub>2</sub>(x,y)·...·S<sub>k</sub>(x,y);步骤(3.3.4.6),把位于图像中部的一片连通区域作为舌体区域,取出其边界V:V={V<sub>1</sub>,V<sub>2</sub>...V<sub>L</sub>},V<sub>i</sub>=(x<sub>i</sub>,y<sub>i</sub>),i={1,2,...L},其中,S(x<sub>i</sub>,y<sub>i</sub>)=1,V上的点是分水岭变换计算出的封闭边界;步骤(4),把步骤(3)得到的边界V作为二维形变轮廓模型的初始曲线,按以下步骤计算出光滑的舌体轮廓曲线:步骤(4.1),对每个处于像素V<sub>i</sub>周围设定邻域中的像素V<sub>i</sub>′,定义该像素点V<sub>i</sub>′的能量项为:E<sub>i</sub>(V<sub>i</sub>′)=αE<sub>int</sub>(V<sub>i</sub>′)+βE<sub>ext</sub>(V<sub>i</sub>′),其中,E<sub>int</sub>是依赖于轮廓形状的连续能量函数,使轮廓趋于光滑:<maths num="0002"><![CDATA[<math><mrow><msub><mi>E</mi><mi>int</mi></msub><mrow><mo>(</mo><msup><msub><mi>V</mi><mi>i</mi></msub><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mi>I</mi><mrow><mo>(</mo><mi>V</mi><mo>)</mo></mrow></mrow></mfrac><msup><mrow><mo>|</mo><mo>|</mo><msup><msub><mi>V</mi><mi>i</mi></msub><mo>&prime;</mo></msup><mi>&gamma;</mi><mrow><mo>(</mo><msub><mi>V</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>V</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>,</mo></mrow></math>]]></maths>I(V)是曲线V中各点的平均距离:<maths num="0003"><![CDATA[<math><mrow><mi>I</mi><mrow><mo>(</mo><mi>V</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mi>L</mi></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>L</mi></munderover><msup><mrow><mo>|</mo><mo>|</mo><msub><mi>V</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>V</mi><mi>i</mi></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>,</mo></mrow></math>]]></maths>对于封闭的曲线,<maths num="0004"><![CDATA[<math><mrow><mi>&gamma;</mi><mo>=</mo><mfrac><mn>1</mn><mrow><mn>2</mn><mi>cos</mi><mrow><mo>(</mo><mn>2</mn><mi>&pi;</mi><mo>/</mo><mi>Len</mi><mo>)</mo></mrow></mrow></mfrac><mo>,</mo></mrow></math>]]></maths>Len表示该曲线的长度,所述设定邻域,取值为5×5,E<sub>ext</sub>是图像灰度能量的函数,将变形轮廓向高灰度移动,等于向原图像的边缘移动,使E<sub>ext</sub>(V<sub>i</sub>′)=-g(V<sub>i</sub>′),α、β是加权常数,取2α=β=2,若:E<sub>i</sub>(V<sub>i</sub>′)<E<sub>i</sub>(V<sub>i</sub>),则取V<sub>i</sub>=V<sub>i</sub>′;步骤(4.2),根据设定的曲线光滑度参数,在设定的邻域内各个像素逐次迭代,使初始的舌体轮廓曲线收缩到使得能量E<sub>i</sub>最小的位置,该收缩后最终得到的曲线内部的连通区域即舌体区域;步骤(5),把最终得到的曲线用所选降采样倍数扩充后,放入原彩色图像中,得到原彩色图像中的舌体轮廓曲线V={V<sub>1</sub>,V<sub>2</sub>...V<sub>L</sub>},V<sub>i</sub>=(M*x<sub>i</sub>,M*y<sub>i</sub>),i={1,2,...L},再把非舌体部分去除,填充白色,仅保存舌体部分,输出结果。
地址 100084北京市100084-82信箱