亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種橢圓形無柵格油位計的自動讀數(shù)方法與流程

文檔序號:12367138閱讀:368來源:國知局
一種橢圓形無柵格油位計的自動讀數(shù)方法與流程

一種橢圓形無柵格油位計的自動讀數(shù)方法,用于儀表智能讀數(shù),屬于工業(yè)機(jī)器視覺儀表智能讀數(shù)技術(shù)領(lǐng)域。



背景技術(shù):

工業(yè)機(jī)器視覺儀表智能讀數(shù)技術(shù)主要利用模式識別來提取特定的儀表、指針,達(dá)到讀數(shù)的目的。相比于人工讀數(shù),其優(yōu)點(diǎn)有:24小時不間斷讀數(shù),節(jié)省人工勞動力,穩(wěn)定性高,效率高。因此在工業(yè)領(lǐng)域應(yīng)用中,智能儀表讀書有很高的研究價值。

衡量工業(yè)機(jī)器視覺儀表智能讀數(shù)算法性能主要體現(xiàn)在對儀表定位、讀數(shù)(指針)提取和圖像復(fù)原的能力上。以一種指針式表盤自動讀數(shù)方法為例,需要從普通相機(jī)拍攝的照片中,正確定位出儀表,正確識別出儀表盤指針的位置,模擬人讀數(shù)的方式進(jìn)行讀數(shù)。而成像過程中,旋轉(zhuǎn)、光照變化和遮擋是圖像主要的干擾,也是圖像復(fù)原的主要難點(diǎn)。

目前,常用的智能儀表讀數(shù)算法有Hough變換、加權(quán)平均法、數(shù)學(xué)形態(tài)學(xué)、邊緣檢測、閾值分割、主動輪廓法等一系列算法。由于成像過程中,太多背景信息進(jìn)入了圖像,在加上光照不均,遮擋等影響,導(dǎo)致對儀表讀數(shù),指針等關(guān)鍵信息難以很好得提取。近年來智能儀表讀數(shù)算法也有了很多創(chuàng)新,如雙閾值Hough變換、基于Snake模型的指針式表盤的分割、使用Hough圓檢測和中心投影法的智能儀表讀數(shù)等。這些方法在一定程度上可以完成對儀表的智能讀數(shù),并相比于傳統(tǒng)提高了一定效率,但仍存在定位困難、識別困難、計算量大、移植困難、算法的穩(wěn)定性差和效率低等問題。



技術(shù)實現(xiàn)要素:

本發(fā)明針對上述不足之處提供了一種橢圓形無柵格油位計的自動讀數(shù)方法,解決現(xiàn)有技術(shù)中對儀表、指針進(jìn)行讀數(shù)時,由于背景復(fù)雜,光照變化和成像噪聲與退化造成的定位困難、識別困難、計算量大、移植困難、算法的穩(wěn)定性差和效率低等問題。

為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:

一種橢圓形無柵格油位計的自動讀數(shù)方法,其特征在于,包括以下步驟:

步驟1:讀入原始圖像f(x,y),即讀入橢圓無柵格油液計圖像;

步驟2:用Hough變換的橢圓檢測對原始圖像f(x,y)進(jìn)行初步定位,得到初步定位圖像f1(x,y);

步驟3:用Canny邊緣檢測對初步定位圖像f1(x,y)進(jìn)行邊緣檢測,得到邊緣圖像g1(x,y),并用形態(tài)學(xué)膨脹將邊緣圖像g1(x,y)斷掉的邊緣連接起來;

步驟4:對膨脹過后的邊緣圖像g1(x,y)進(jìn)行孔洞填充,然后提取所有連通分量,最后在提取的所有連通分量里提取最大的連通分量Ymax

步驟5:對最大的連通分量Ymax進(jìn)行腐蝕,得到油位計的準(zhǔn)確位置,用恰好框住連通分量Ymax的最小矩形將原始圖像f(x,y)中的油位計提取出來;

步驟6:將步驟5中的矩形等比例縮小,直到將油位計讀數(shù)區(qū)f2(x,y)截取出來;

步驟7:對提取出來的油位計讀數(shù)區(qū)f2(x,y)進(jìn)行Canny邊緣檢測,得到邊緣圖像g2(x,y);

步驟8:用橫向結(jié)構(gòu)元對邊緣圖像g2(x,y)進(jìn)行腐蝕,將大量非液面邊緣去除;

步驟9:將大量非液面邊緣去除后,設(shè)置閾值,當(dāng)保留的邊緣長度大于閾值時,則為液面,反之,則不是液面;

步驟10:通過液面的位置以及油位計讀數(shù)區(qū)f2(x,y)的量程計算出油量百分比。

進(jìn)一步,所述步驟2中Hough變換的橢圓檢測公式如下:

其中,a是原始圖像f(x,y)的長軸或短軸,即橫向平分橢圓的軸,b是原始圖像f(x,y)的短軸或長軸,即縱向平分橢圓的軸,(x0,y0)是原始圖像f(x,y)的圓心,x、y是原空間的自變量與因變量。

進(jìn)一步,所述步驟3、步驟7中Canny邊緣檢測的具體步驟為:

步驟371:用一個高斯濾波器平滑輸入圖像,得到平滑后的圖像:

fs(x,y)=G(x,y)*f(x,y);

其中,fs(x,y)表示平滑后的圖像(在步驟3中表示初步定位圖像f1(x,y)平滑后的圖像,在步驟7中表示油位計讀數(shù)區(qū)f2(x,y)平滑后的圖像),f(x,y)表示輸入圖像(在步驟3中表示初步定位圖像f1(x,y),在步驟7中表示油位計讀數(shù)區(qū)f2(x,y)),G(x,y)表示高斯函數(shù),(x,y)表示圖像中的像素坐標(biāo)值(在步驟3中表示初步定位圖像f1(x,y)的像素坐標(biāo)值,在步驟7中表示油位計讀數(shù)區(qū)f2(x,y)的像素坐標(biāo)值),σ2表示高斯函數(shù)G(x,y)的方差,“*”表示卷積;

步驟372:根據(jù)平滑后的圖像,提取梯度幅值圖像和梯度角度圖像:

其中,M(x,y)表示梯度幅值圖像,α(x,y)表示梯度角度圖像,表示平滑后的圖像fs(x,y)在x方向的偏導(dǎo)數(shù),表示平滑后的圖像fs(x,y)在y方向的偏導(dǎo)數(shù);

步驟373:采用非極大值對梯度幅值圖像M(x,y)進(jìn)行抑制:首先,令d1,d2,d3和d4分別表示四個基本邊緣方向,即水平方向(0°)、-45°、垂直方向(90°)、45°;然后尋找最接近梯度角度圖像α(x,y)的dk(k=1,2,3,4);最后,如果梯度幅值圖像M(x,y)的值小于沿dk方向的兩個鄰居值之一,則令gN(x,y)=0(抑制),否則,令gN(x,y)=M(x,y),這里gN(x,y)是非極大值抑制后的圖像,N表示非極大值抑制;

步驟374:用雙閾值處理來檢測非極大值抑制后的圖像gN(x,y)的邊緣,即同時用兩個不同的閾值對非極大值抑制后的圖像gN(x,y)進(jìn)行邊緣檢測:

其中,TH表示高閾值,TL表示低閾值,gNH(x,y)表示非極大值抑制后的圖像gN(x,y)經(jīng)過高閾值TH分割后的圖像,gNL(x,y)表示非極大值抑制后的圖像gN(x,y)經(jīng)過低閾值TL分割后的圖像,閾值處理后,gNH(x,y)的非零元素比gNL(x,y)少,gNH(x,y)中所有非零像素都包含在gNL(x,y)中,則

g'NL(x,y)=gNL(x,y)-gNH(x,y);

上述公式中,從經(jīng)過低閾值TL分割后的圖像gNL(x,y)中刪除所有來自經(jīng)過高閾值TH分割后的圖像gNH(x,y)的非零元素,即可將gNH(x,y)和g'NL(x,y)中的非零像素分別看成是“強(qiáng)”和“弱”邊緣像素;

步驟375:閾值處理后,經(jīng)過高閾值TH分割后的圖像gNH(x,y)中的所有強(qiáng)邊緣像素均為有效的邊緣像素,并進(jìn)行標(biāo)記,由于經(jīng)過高閾值TH分割后的圖像gNH(x,y)中的邊緣存在縫隙,需要得到較長的邊緣和Canny邊緣檢測形成最終的輸出圖像的具體步驟如下:

(a)在經(jīng)過高閾值TH分割后的圖像gNH(x,y)中,對當(dāng)前定位的像素用8鄰域順時針定位下一個未被訪問的邊緣像素p;

(b)在g'NL(x,y)中將所有的弱像素標(biāo)記為有效邊緣像素,用8連通性的連接方法連接到p;

(c)通過8連通性的連接,如果gNH(x,y)中的所有非零像素已被訪問,則跳到步驟(d), 否則返回步驟(a);

(d)將g'NL(x,y)未標(biāo)記為有效邊緣像素的所有像素置零,此時,經(jīng)過高閾值TH分割后的圖像gNH(x,y)中存在縫隙的邊緣被填充,得到一根較長的邊緣;

(e)將g'NL(x,y)的所有非零像素賦加到gNH(x,y),得到用Canny邊緣檢測形成最終的輸出圖像g(x,y)(在步驟3中為邊緣圖像g1(x,y),在步驟7中為邊緣圖像g2(x,y))。

進(jìn)一步,所述步驟3中,形態(tài)學(xué)膨脹將斷掉的邊緣連接起來的公式如下:

其中,g1(x,y)表示邊緣圖像,B表示結(jié)構(gòu)元,b={b1,b2}表示原結(jié)構(gòu)元B里每個像素的坐標(biāo),w={w1,w2}表示經(jīng)過變換后的結(jié)構(gòu)元每個像素的坐標(biāo),(B)z={w|w=b+z,b∈B}表示將B中的坐標(biāo)b={b1,b2}都加上z={z1,z2}個像素坐標(biāo)。

進(jìn)一步,所述步驟4的具體步驟如下:

步驟41:將膨脹過后的邊緣圖像g1(x,y)進(jìn)行孔洞填充,孔洞填充的公式如下:

其中,A表示一個集合,元素是8連通的邊界,每個邊界包圍一個膨脹后的邊緣圖像g1(x,y)的背景區(qū)域,即一個孔洞,Ac表示不屬于A的點(diǎn)的集合,B是結(jié)構(gòu)元,表示形態(tài)學(xué)膨脹,Xk表示經(jīng)過第k次迭代后的孔洞填充結(jié)果,如果Xk=Xk-1,則填充結(jié)束;

步驟42:孔洞填充后,提取所有連通分量,提取連通分量的公式如下:

其中,Yk表示對步驟41中孔洞填充的圖像Xk提取到的所有連通分量,B表示結(jié)構(gòu)元, 表示形態(tài)學(xué)膨脹,X=Xk表示步驟41中孔洞填充后的連通分量的集合;

步驟43:得到所有連通分量后,提取最大連通分量,公式如下:

Ymax=max{Area(Yk)};

其中,Ymax表示提取到的所有連通分量Yk中的最大連通分量,Area(Yk)表示連通分量Yk的像素個數(shù),最大連通分量Ymax,即像素個數(shù)最多的連通分量。

進(jìn)一步,所述步驟5中,用恰好框住連通分量Ymax的最小矩形如下所示:

由于最大連通分量是平行于縱坐標(biāo)方向的,矩形框和連通分量Ymax的切點(diǎn)可以表示為:a(x1,ymin),b(xmax,y1),c(x1,ymax),d(xmin,y1),其中,xmin,xmax,ymin,ymax分別表示最大連通分量水平方向的最小值、最大值和垂直方向最小值、最大值,x1是垂直方向切點(diǎn)a,c的橫坐標(biāo),y1是水平切點(diǎn)b,d的縱坐標(biāo),矩形框的四個頂點(diǎn)A,B,C,D可以根據(jù)四個切點(diǎn)坐標(biāo)分別表示為:A(xmin,ymin)、B(xmax,ymin)、C(xmin,ymax)、D(xmax,ymax)。

進(jìn)一步,所述步驟6中,將步驟5中的矩形等比例縮小具體如下所示:

xC=(xmin+xmax)/2,

yC=(ymin+ymax)/2,

x'min=xmin+a[xC-xmin],

y'min=y(tǒng)min+a[yC-ymin],

x'max=xmax-a[xmax-xC],

y'max=y(tǒng)max-a[ymax-yC],

P(xC,yC)表示矩形框的形心,A’(x'min,y'min)、B’(x'max,y'min)、C’(x'min,y'max)、D’(x'max,y'max)表示縮小后的矩形的頂點(diǎn),a為縮小的系數(shù)。

進(jìn)一步,所述步驟5和步驟8中,形態(tài)學(xué)腐蝕的公式如下:

其中,A是輸入圖像(步驟5中是最大連通分量Ymax,步驟8中是邊緣圖像g2(x,y)),B是結(jié)構(gòu)元(步驟5中是普通的十字形結(jié)構(gòu)元,步驟8中是水平方向的結(jié)構(gòu)元),b={b1,b2}表示原結(jié)構(gòu)元B里每個像素的坐標(biāo),w={w1,w2}表示經(jīng)過變換后的結(jié)構(gòu)元每個像素的坐標(biāo),(B)z={w|w=b+z,b∈B}表示將B中的坐標(biāo)b={b1,b2}都加上z={z1,z2}個像素坐標(biāo)。

進(jìn)一步,所述步驟9中得到液面的具體公式為:

其中,Zk表示經(jīng)過步驟8的形態(tài)學(xué)腐蝕后邊緣圖像g2(x,y)中的第k個連通分量,jk是Zk的縱坐標(biāo),T是所有邊緣連通分量的縱坐標(biāo)的加權(quán)均值,權(quán)值大小為連通分量的像素個數(shù)Area(Zk),N表示經(jīng)過步驟8的形態(tài)學(xué)腐蝕后邊緣圖像g2(x,y)中的連通分量個數(shù),每經(jīng)過一次公式的分割后重新計算T,再次用公式分割直至收斂。

進(jìn)一步,所述步驟10中,計算油量百分比的公式為:

其中,Poil表示剩余油量百分比,yedge表示步驟9中提取出來的液面邊緣縱坐標(biāo),y'min和y'max分別是步驟7中縮小后矩形框的縱坐標(biāo)的最小值和最大值。

與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:

一、本發(fā)明算法結(jié)構(gòu)簡單,運(yùn)算量少,且本發(fā)明采用的算法均為經(jīng)典算法,例如Canny邊緣檢測和形態(tài)學(xué)中的孔洞填充對油位計精確定位,通過結(jié)合經(jīng)典算法,實現(xiàn)儀表、指針的精確讀數(shù),處理速度快,對每張靜態(tài)圖像的平均耗時在1秒左右,能很好滿足實際應(yīng)用要求;

二、本發(fā)明在橢圓形無柵格油位計圖像視角的旋轉(zhuǎn)、光照的影響和模糊等干擾下,具有較好的魯棒性;

三、本發(fā)明易于實現(xiàn),可以移植到C++平臺下運(yùn)行,并且也易于移植到其他平臺。

附圖說明

圖1為本發(fā)明中包圍連通分量的矩形框示意圖;

圖2為本發(fā)明的流程圖示意圖;

圖3為本發(fā)明的初始圖像;

圖4為本發(fā)明的中Hough變換的橢圓檢測;

圖5為本發(fā)明中Canny邊緣檢測及膨脹連接示意圖;其中,(a)為canny邊緣檢測示意圖、(b)為膨脹canny邊緣檢測后的示意圖;

圖6為本發(fā)明中孔洞填充示意圖;

圖7為本發(fā)明中最大的連通分量及最大連通分量的腐蝕示意圖;

圖8為本發(fā)明中縮小矩形框的示意圖;其中,(a)為矩形框縮小示意圖、(b)為縮小比例示意圖、(c)為縮小后的結(jié)果示意圖;

圖9為本發(fā)明中對油位計窗口的邊緣檢測示意圖;

圖10為本發(fā)明中用橫向結(jié)構(gòu)元對邊緣圖像g2(x,y)進(jìn)行腐蝕示意圖;

圖11為本發(fā)明中提取液面邊緣和讀數(shù)結(jié)果示意圖。

具體實施方式

下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步說明。

步驟1:讀入原始圖像f(x,y),即讀入橢圓無柵格油液計圖像,如圖3所示;

步驟2:用Hough變換的橢圓檢測對原始圖像f(x,y)進(jìn)行初步定位,得到初步定位圖像f1(x,y),如圖4所示,Hough變換的橢圓檢測公式如下:

其中,a是原始圖像f(x,y)的長軸或短軸,即橫向平分橢圓的軸,b是原始圖像f(x,y)的短軸或長軸,即縱向平分橢圓的軸,(x0,y0)是原始圖像f(x,y)的圓心,x、y是原空間的自變量與因變量。

步驟3:用Canny邊緣檢測對初步定位圖像f1(x,y)進(jìn)行邊緣檢測,得到邊緣圖像g1(x,y),并用形態(tài)學(xué)膨脹將邊緣圖像g1(x,y)斷掉的邊緣連接起來,如圖5所示,具體步驟如下所示:

步驟31:用一個高斯濾波器平滑輸入圖像,得到平滑后的圖像:

fs1(x,y)=G(x,y)*f1(x,y);

其中,f1(x,y)表示輸入圖像,即初步定位圖像,fs1(x,y)表示對輸入圖像平滑后的圖像,G(x,y)表示高斯函數(shù),(x,y)表示初步定位圖像中的像素坐標(biāo)值,σ2表示高斯函數(shù)G(x,y)的方差,“*”表示卷積;

步驟32:根據(jù)平滑后的圖像,計算提取梯度幅值圖像和梯度角度圖像:

\

其中,M1(x,y)表示梯度幅值圖像,α1(x,y)梯度角度圖像,表示平滑后的圖像fs1(x,y)在x方向的偏導(dǎo)數(shù),表示表示平滑后的圖像fs1(x,y)在y方向的偏導(dǎo)數(shù);

步驟33:采用非極大值對梯度幅值圖像M1(x,y)進(jìn)行抑制:首先,令d1,d2,d3和d4分別表示四個基本邊緣方向,即水平方向(0°)、-45°、垂直方向(90°)、45°;然后尋找 最接近梯度角度圖像α1(x,y)的dk(k=1,2,3,4);最后,如果梯度幅值圖像M1(x,y)的值小于沿dk方向的兩個鄰居值之一,則令gN1(x,y)=0(抑制),否則,令gN1(x,y)=M1(x,y),這里gN1(x,y)是非極大值抑制后的圖像,N表示非極大值抑制;

步驟34:用雙閾值處理來檢測非極大值抑制后的圖像gN(x,y)的邊緣,具體如下:

其中,TH1表示高閾值,TL1表示低閾值,gNH1(x,y)表示非極大值抑制后的圖像gN1(x,y)經(jīng)過高閾值TH1分割后的圖像,gNL1(x,y)表示非極大值抑制后的圖像gN1(x,y)經(jīng)過低閾值TL1分割后的圖像。閾值處理后,gNH1(x,y)的非零元素通常比gNL1(x,y)少,但是gNH1(x,y)中所有非零像素都包含在gNL1(x,y)中,因為gNL1(x,y)是使用一個低的閾值形成的,通過令g'NL1(x,y)=gNL1(x,y)-gNH1(x,y);式中,從gNL1(x,y)中刪除所有來自gNH1(x,y)的非零元素,此時,gNH1(x,y)和g'NL1(x,y)中的非零像素分別看成是“強(qiáng)”和“弱”邊緣像素。

步驟35:閾值處理后,gNH1(x,y)中的所有強(qiáng)像素均被假設(shè)為有效的邊緣像素,并被立即標(biāo)記。由于經(jīng)過高閾值TH1分割后的圖像gNH1(x,y)中的邊緣存在縫隙,需要得到較長的邊緣和Canny邊緣檢測形成最終的輸出圖像的具體步驟如下:

(a)在gNH1(x,y)中,對當(dāng)前定位的像素用8鄰域順時針定位下一個未被訪問的邊緣像素p。

(b)在g'NL1(x,y)中將所有的弱像素標(biāo)記為有效邊緣像素,用8連通性的連接方法連接 到p。

(c)如果gNH1(x,y)中的所有非零像素已被訪問,則跳到步驟(d),否則返回步驟(a)。

(d)將g'NL1(x,y)未標(biāo)記為有效邊緣像素的所有像素置零,此時,經(jīng)過高閾值TH1分割后的圖像gNH1(x,y)中存在縫隙的邊緣被填充,得到一根較長的邊緣;

(e)將來自g'NL1(x,y)的所有非零像素賦加到gNH1(x,y),得到用Canny算子形成最終的輸出圖像g1(x,y)。

步驟36:形態(tài)學(xué)膨脹將邊緣圖像g1(x,y)斷掉的邊緣連接起來的公式如下:

其中,g1(x,y)表示邊緣圖像,B表示結(jié)構(gòu)元,b={b1,b2}表示原結(jié)構(gòu)元B里每個像素

的坐標(biāo),w={w1,w2}表示經(jīng)過變換后的結(jié)構(gòu)元每個像素的坐標(biāo),

(B)z={w|w=b+z,b∈B}表示將B中的坐標(biāo)b={b1,b2}都加上z={z1,z2}個像素坐標(biāo)。

步驟4:對膨脹過后的邊緣圖像g1(x,y)進(jìn)行孔洞填充,然后提取所有連通分量,最后在提取的所有連通分量里提取最大的連通分量Ymax,具體步驟如下:

步驟41:將膨脹過后的邊緣圖像g1(x,y)進(jìn)行孔洞填充,孔洞填充的公式如下:

其中,A表示一個集合,元素是8連通的邊界,每個邊界包圍一個膨脹后的邊緣圖像g1(x,y)的背景區(qū)域,即一個孔洞,Ac表示不屬于A的點(diǎn)的集合,B是結(jié)構(gòu)元,表示形態(tài)學(xué)膨脹,Xk表示經(jīng)過第k次迭代后的孔洞填充結(jié)果,如果Xk=Xk-1,則填充結(jié)束;

步驟42:孔洞填充后,提取所有連通分量,提取連通分量的公式如下:

其中,Yk表示對步驟41中孔洞填充的圖像Xk提取到的所有連通分量,B表示結(jié)構(gòu)元, 表示形態(tài)學(xué)膨脹,X=Xk表示步驟41中孔洞填充后的連通分量的集合;

步驟43:得到所有連通分量后,提取最大連通分量,公式如下:

Ymax=max{Area(Yk)};

其中,Ymax表示提取到的所有連通分量Yk中的最大連通分量,Area(Yk)表示連通分量Yk的像素個數(shù),最大連通分量Ymax,即像素個數(shù)最多的連通分量。

步驟5:對最大的連通分量Ymax進(jìn)行腐蝕,得到油位計的準(zhǔn)確位置,用恰好框住連通分量Ymax的最小矩形將原始圖像f(x,y)中的油位計提取出來,如圖1所示,具體步驟如下:

步驟51:對最大連通分量Ymax進(jìn)行腐蝕,具體如下:

其中,Ymax是步驟7得到的邊緣圖像,B1是十字形結(jié)構(gòu)元(普通的,常用的結(jié)構(gòu)元),b={b1,b2}表示原結(jié)構(gòu)元B1里每個像素的坐標(biāo),w={w1,w2}表示經(jīng)過變換后的結(jié)構(gòu)元每個像素的坐標(biāo),(B1)z={w|w=b+z,b∈B1}表示將B1中的坐標(biāo)b={b1,b2}都加上z={z1,z2}個像素坐標(biāo)

步驟52:用矩形框把腐蝕后的最大連通分量圍?。?/p>

由于最大連通分量是平行于縱坐標(biāo)方向的,矩形框和連通分量Ymax的切點(diǎn)可以表示為:a(x1,ymin),b(xmax,y1),c(x1,ymax),d(xmin,y1),其中,xmin,xmax,ymin,ymax分別表示最大連通分量水平方向的最小值、最大值和垂直方向最小值、最大值,x1是垂直方向切點(diǎn)a,c的橫坐標(biāo),y1是水平切點(diǎn)b,d的縱坐標(biāo),矩形框的四個頂點(diǎn)A,B,C,D可以根據(jù)四個切點(diǎn)坐 標(biāo)分別表示為:A(xmin,ymin)、B(xmax,ymin)、C(xmin,ymax)、D(xmax,ymax)。

步驟6:將步驟5中的矩形等比例縮小,直到將油位計讀數(shù)區(qū)f2(x,y)截取出來,如圖8所示,具體步驟如下:

xC=(xmin+xmax)/2,

yC=(ymin+ymax)/2,

x'min=xmin+a[xC-xmin],

y'min=y(tǒng)min+a[yC-ymin],

x'max=xmax-a[xmax-xC],

y'max=y(tǒng)max-a[ymax-yC],

P(xC,yC)表示矩形框的形心,A’(x'min,y'min)、B’(x'max,y'min)、C’(x'min,y'max)、D’(x'max,y'max)表示縮小后的矩形的頂點(diǎn),a為縮小的系數(shù)。

步驟7:對提取出來的油位計讀數(shù)區(qū)f2(x,y)進(jìn)行Canny邊緣檢測,得到邊緣圖像g2(x,y),如圖9所示,具體步驟如下所示:

步驟71:用一個高斯濾波器平滑輸入圖像,得到平滑后的圖像:

fs2(x,y)=G(x,y)*f2(x,y);

其中,f2(x,y)表示輸入圖像,即油位計讀數(shù)區(qū),fs2(x,y)表示對輸入圖像平滑后的圖像,G(x,y)表示高斯函數(shù),(x,y)表示油位計讀數(shù)區(qū)中的像素坐標(biāo)值,σ2表示高斯函數(shù)G(x,y)的方差,“*”表示卷積。

步驟72:根據(jù)平滑后的圖像,計算提取梯度幅值圖像和梯度角度圖像:

其中,M2(x,y)表示梯度幅值圖像,α2(x,y)表示梯度角度圖像,表示平滑后的圖像fs2(x,y)在x方向的偏導(dǎo)數(shù),表示平滑后的圖像fs2(x,y)在y方向的偏導(dǎo)數(shù)。

步驟73:采用非極大值對梯度幅值圖像M2(x,y)進(jìn)行抑制:首先,令d1,d2,d3和d4表示四個基本邊緣方向:水平方向(0°)、-45°、垂直方向(90°)、45°;然后尋找最接近α2(x,y)的dk(k=1,2,3,4);最后,如果M2(x,y)的值小于沿dk方向的兩個鄰居值之一,則令gN2(x,y)=0(抑制),否則,令gN2(x,y)=M2(x,y),這里gN2(x,y)是非極大值抑制后的圖像,N表示非極大值抑制。

步驟74:用雙閾值處理來檢測非極大值抑制后的圖像gN(x,y)的邊緣,:

其中,TH2表示高閾值,TL2表示低閾值,gNH2(x,y)表示非極大值抑制后的圖像gN2(x,y)經(jīng)過高閾值TH2分割后的圖像,gNL2(x,y)表示非極大值抑制后的圖像gN2(x,y)經(jīng)過低閾值TL2分割后的圖像。閾值處理后,gNH2(x,y)的非零元素通常比gNL2(x,y)少,但是gNH2(x,y)中所有非零像素都包含在gNL2(x,y)中,因為gNL2(x,y)是使用一個低的閾值形成的,通過令g'NL2(x,y)=gNL2(x,y)-gNH2(x,y);式中,從gNL2(x,y)中刪除所有來自gNH2(x,y)的 非零元素。此時,gNH2(x,y)和g'NL2(x,y)中的非零像素分別看成是“強(qiáng)”和“弱”邊緣像素。

步驟75:閾值處理后,gNH2(x,y)中的所有強(qiáng)像素均被假設(shè)為有效的邊緣像素,并被立即標(biāo)記。由于經(jīng)過高閾值TH2分割后的圖像gNH2(x,y)中的邊緣存在縫隙,需要得到較長的邊緣和Canny邊緣檢測形成最終的輸出圖像的具體步驟如下:

(a)在gNH2(x,y)中,對當(dāng)前定位的像素用8鄰域順時針定位下一個未被訪問的邊緣像素p;

(b)在g'NL2(x,y)中將所有的弱像素標(biāo)記為有效邊緣像素,用8連通性的連接方法連接到p;

(c)通過8連通性的連接,如果gNH2(x,y)中的所有非零像素已被訪問,則跳到步驟(d),否則返回步驟(a);

(d)將g'NL2(x,y)未標(biāo)記為有效邊緣像素的所有像素置零;經(jīng)過高閾值TH2分割后的圖像gNH2(x,y)中存在縫隙的邊緣被填充,得到一根較長的邊緣;

(e)將來自g'NL2(x,y)的所有非零像素賦加到gNH2(x,y),得到用Canny邊緣檢測形成最終的輸出圖像g2(x,y);

步驟8:用橫向結(jié)構(gòu)元對邊緣圖像g2(x,y)進(jìn)行腐蝕,將大量非液面邊緣去除,如圖10所示,具體公式如下:

其中,g2(x,y)是步驟7得到的邊緣圖像,B2是水平方向的結(jié)構(gòu)元,b={b1,b2}表示原 結(jié)構(gòu)元B2里每個像素的坐標(biāo),w={w1,w2}表示經(jīng)過變換后的結(jié)構(gòu)元每個像素的坐標(biāo),(B2)z={w|w=b+z,b∈B}表示將B2中的坐標(biāo)b={b1,b2}都加上z={z1,z2}個像素坐標(biāo);

步驟9:將大量非液面邊緣去除后,此時液面邊緣具有絕對的顯著性,設(shè)置閾值,當(dāng)保留的邊緣長度大于閾值時,則為液面,反之,則不是液面,具體步驟如下;

其中,Zk表示經(jīng)過步驟8的形態(tài)學(xué)腐蝕后邊緣圖像g2(x,y)中的第k個連通分量,jk是Zk的縱坐標(biāo),T是所有邊緣連通分量的縱坐標(biāo)的加權(quán)均值,權(quán)值大小為連通分量的像素個數(shù)Area(Zk),N表示經(jīng)過步驟8的形態(tài)學(xué)腐蝕后邊緣圖像g2(x,y)中的連通分量個數(shù),每經(jīng)過一次公式的分割后重新計算T,再次用公式分割直至收斂。

步驟10:通過液面的位置以及油位計讀數(shù)區(qū)f2(x,y)的量程可以計算出油量百分比,如圖11所示,具體公式如下所示:

其中,Poil表示剩余油量百分比,yedge表示步驟9中提取出來的液面邊緣縱坐標(biāo),y'min和y'max分別是步驟7中縮小后矩形框的縱坐標(biāo)的最小值和最大值。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1