亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種利用Matlab提取圖像中曲線的新方法

        2014-01-21 06:53:10黃志剛
        關(guān)鍵詞:二值工具箱數(shù)組

        董 延,黃志剛,2

        (1.北京工商大學(xué) 材料與機(jī)械工程學(xué)院,北京 100048;2.北京工商大學(xué) 中國(guó)食品安全研究中心,北京 100048)

        0 引言

        在科研過(guò)程中,許多文獻(xiàn)資料中的數(shù)據(jù)是以曲線的形式給出的。在只有曲線圖而沒(méi)有數(shù)學(xué)表達(dá)式的情況下,如果想要獲得曲線上某些點(diǎn)的坐標(biāo)值,較原始的方法是在坐標(biāo)紙上手工描點(diǎn),這種方法比較耗時(shí),且準(zhǔn)確度取決于取點(diǎn)的多少與描點(diǎn)精度。后來(lái)隨著計(jì)算機(jī)的發(fā)展,出現(xiàn)了一些專(zhuān)用圖像處理軟件,在這類(lèi)軟件中,通過(guò)在圖像上手工取點(diǎn),再用曲線擬合的方法將各點(diǎn)連接,以提取出原始曲線。但是這種方法的準(zhǔn)確度會(huì)受到取點(diǎn)的位置、數(shù)量以及所選擇的擬合算法的影響。

        本文提出一種基于Matlab 的圖像處理技術(shù)提取圖像中的曲線的新方法。創(chuàng)新處是在提取的過(guò)程中使用了圖像的形態(tài)學(xué)運(yùn)算,使得本方法只需選擇較少的點(diǎn),就能夠快速、準(zhǔn)確地將圖像中的曲線提取出來(lái)。同時(shí)克服了圖像背景對(duì)曲線提取產(chǎn)生的干擾。

        1 Matlab 圖像處理工具箱及圖形用戶(hù)界面

        Matlab 中的數(shù)字圖像是以矩陣形式表示的,這意味著其強(qiáng)大的矩陣運(yùn)算能力用于圖像處理非常有利,矩陣運(yùn)算的語(yǔ)法對(duì)Matlab 中的數(shù)字圖像同樣適用。

        1.1 Matlab 圖像處理工具箱

        MathWorks 公司針對(duì)不同領(lǐng)域的應(yīng)用,推出了30 多個(gè)具有專(zhuān)門(mén)功能的工具箱。這些工具箱都是由該領(lǐng)域內(nèi)的專(zhuān)家編寫(xiě)的,用戶(hù)可直接對(duì)工具箱內(nèi)的函數(shù)進(jìn)行調(diào)用,而無(wú)需自己編寫(xiě)所用的專(zhuān)業(yè)基礎(chǔ)程序。

        Matlab 圖像處理工具箱(Image Processing Toolbox)專(zhuān)為數(shù)字圖像處理而開(kāi)發(fā)。它提供了一套全方位的參照標(biāo)準(zhǔn)算法和圖形工具,用于進(jìn)行圖像處理、分析、可視化和算法開(kāi)發(fā)。可進(jìn)行圖像增強(qiáng)、圖像去模糊、特征檢測(cè)、降噪、圖像分割、空間轉(zhuǎn)換和圖像配準(zhǔn)。該工具箱中的許多功能支持多線程,可發(fā)揮多核和多處理器計(jì)算機(jī)的性能。

        Matlab 圖像處理工具箱函數(shù)包括: 圖像顯示函數(shù)、圖像文件輸入、輸出函數(shù)、圖像幾何操作函數(shù)、圖像像素值及統(tǒng)計(jì)函數(shù)、圖像分析函數(shù)、圖像增強(qiáng)函數(shù)、線性濾波函數(shù)、二維線性濾波器設(shè)計(jì)函數(shù)、圖像變換函數(shù)、圖像鄰域及塊操作函數(shù)、二值圖像操作函數(shù)、基于區(qū)域的圖像處理函數(shù)、顏色圖操作函數(shù)、顏色空間轉(zhuǎn)換函數(shù)、圖像類(lèi)型和類(lèi)型轉(zhuǎn)換函數(shù),共15 類(lèi)[1]。Matlab 圖像處理工具箱支持四種圖像類(lèi)型。這四圖像類(lèi)型分別為RGB 圖像、索引圖像、灰度圖像和二值圖像。這四種類(lèi)型可以用工具箱的類(lèi)型轉(zhuǎn)換函數(shù)相互轉(zhuǎn)換。

        (1) 彩色圖像。Matlab 可處理的彩色圖像包括RGB圖像和索引圖像。一幅RGB 圖像在Matlab 中是一個(gè)M×N×3 的三維數(shù)組。前二維M 和N 分別為數(shù)組的行數(shù)和列數(shù),第三維則表示R、G、B 三個(gè)分量的值??梢詫⑦@個(gè)三維數(shù)組看作三個(gè)M×N×1 的二維數(shù)組的疊加。這三個(gè)二維數(shù)組分別表示這幅圖像各像素點(diǎn)的R、G、B分量,相同位置的元素對(duì)應(yīng)同一像素。各分量的取值取決于數(shù)組的數(shù)據(jù)類(lèi)型。例如,當(dāng)數(shù)據(jù)類(lèi)型是double 時(shí),取值范圍是[0,1];當(dāng)數(shù)據(jù)類(lèi)型是uint8 時(shí),取值范圍是[0,255]。索引圖像在Matlab 中則由一個(gè)M×N 的數(shù)組和一個(gè)m×3 的數(shù)組共同表示,其中M 和m 不一定相等。M×N 數(shù)組中的每個(gè)元素對(duì)應(yīng)圖像中相同位置的像素,元素的值n 則指向m×3 數(shù)組中的第n 行,即該位置的像素的R、G、B 值分別由m×3 數(shù)組中的第n 行的三個(gè)值來(lái)確定。

        (2) 灰度變換。灰度圖像的每個(gè)像素只有一個(gè)灰度值,因此灰度圖像是一個(gè)M×N 的二維數(shù)組。將彩色圖像變換為灰度圖像,方法是取彩色圖像中每個(gè)像素的R、G、B 分量值的均值,做為該像素的灰度值。

        Matlab 中將RGB 圖像轉(zhuǎn)換為灰度圖像的語(yǔ)法是I=rgb2gray(RGB);將索引圖像轉(zhuǎn)換為灰度圖像的語(yǔ)法是I=ind2gray(X,map)。

        (3)二值變換。二值圖像在Matlab 中也是一個(gè)M×N的二維數(shù)組,但其數(shù)據(jù)類(lèi)型是logical,因此其元素只取0 或1。0 表示背景像素(黑色),1 表示前景像素(白色)。將灰度圖像轉(zhuǎn)換為二值圖像的語(yǔ)法是BW=im2bw(I,level)。

        (4)數(shù)字圖像的形態(tài)學(xué)運(yùn)算。圖像的形態(tài)學(xué)運(yùn)算是指:用具有一定形態(tài)的結(jié)構(gòu)元素去量度和提取圖像中的對(duì)應(yīng)形狀,以達(dá)到對(duì)圖像分析和識(shí)別的目的。數(shù)學(xué)形態(tài)學(xué)的應(yīng)用可以簡(jiǎn)化圖像數(shù)據(jù),保持它們基本的形狀特性,并除去不相干的結(jié)構(gòu)。與本文所述方法相關(guān)的形態(tài)學(xué)運(yùn)算有形態(tài)學(xué)細(xì)化和形態(tài)學(xué)重構(gòu)。

        形態(tài)學(xué)細(xì)化可將二值圖像中無(wú)孔的連續(xù)對(duì)象細(xì)化為不間斷的線,且保留對(duì)像原始的形狀;將有孔的連續(xù)的對(duì)象縮小為環(huán),且保留對(duì)像原始的形狀。Matlab 語(yǔ)法是BW2=bwmorph(BW,’thin’,n)。

        形態(tài)學(xué)重構(gòu)包括兩幅圖像和一個(gè)結(jié)構(gòu)元。一幅圖像是標(biāo)記,是變換的開(kāi)始點(diǎn);另一幅圖像是模板,用于約束變換過(guò)程。[2]Matlab 語(yǔ)法是IM=imreconstruct(marker,mask)。

        1.2 Matlab 圖形用戶(hù)界面(GUI)

        作為面向科學(xué)與工程計(jì)算的大型科技應(yīng)用軟件,Matlab 同樣提供了一功能強(qiáng)大的用于編寫(xiě)圖形用戶(hù)界面的工具: 圖形用戶(hù)界面 (Graphical User Interface,GUI)。其界面(GUI)是由各種圖形對(duì)象如窗口、光標(biāo)、按鍵、菜單、文字說(shuō)明等對(duì)象構(gòu)成的一個(gè)用戶(hù)界面。用戶(hù)通過(guò)一定的方法(如鼠標(biāo)或鍵盤(pán))選擇、激活這些圖形對(duì)象,可以使計(jì)算機(jī)產(chǎn)生某種動(dòng)作或變化,如實(shí)現(xiàn)計(jì)算、繪圖等[3]。

        在該界面內(nèi),用戶(hù)可以根據(jù)界面提示完成整個(gè)工程,卻不必去了解工程內(nèi)部是如何工作的。

        Matlab 圖形用戶(hù)界面設(shè)計(jì)的第一步是對(duì)控件進(jìn)行布局,這是通過(guò)對(duì)各種圖形對(duì)象的操作來(lái)實(shí)現(xiàn)的。它的設(shè)計(jì)方法有兩種: 編寫(xiě)程序和使用GUIDE。編寫(xiě)程序的方法要求使用者深入了解各種圖形對(duì)象的特征、屬性和操作;而使用GUIDE 則使用者通過(guò)鼠標(biāo)就可以生成各種GUI 控件并改變它們的外觀和位置。第二步是編制菜單、控件的回調(diào)函數(shù),這是圖形用戶(hù)界面設(shè)計(jì)的重點(diǎn)。回調(diào)函數(shù)就是當(dāng)程序接受到某個(gè)Windows 動(dòng)作,如鼠標(biāo)單擊、鍵盤(pán)輸入的時(shí)候,為所希望進(jìn)行的操作所指定的函數(shù)。該函數(shù)是由主控程序調(diào)用的。主控程序?qū)Ω鞣N消息進(jìn)行分析,排隊(duì)和處理,最后去調(diào)用指定的回調(diào)函數(shù)。

        2 提取過(guò)程

        圖1 為基于Matlab GUI 所編寫(xiě)的曲線提取程序的主界面。點(diǎn)擊右側(cè)下方的 “打開(kāi)圖像” 按鈕,將會(huì)彈出文件選擇對(duì)話框,該對(duì)話框的形式和操作與Windows 的文件選擇對(duì)話框相同,不再贅述。

        現(xiàn)以某發(fā)動(dòng)機(jī)外特性曲線圖為例。打開(kāi)圖像后,該圖像會(huì)如圖1 顯示在主界面左側(cè)。該圖像的背景較復(fù)雜(有顏色較深的坐標(biāo)網(wǎng)格線),對(duì)于曲線的正確提取會(huì)產(chǎn)生干擾。對(duì)于這類(lèi)圖像,應(yīng)用本文所述的方法可將曲線準(zhǔn)確地提取出來(lái)。

        下面就以圖1 左側(cè)所示的某發(fā)動(dòng)機(jī)外特性曲線圖為例,結(jié)合Matlab GUI 程序的使用方法說(shuō)明曲線的提取過(guò)程。

        2.1 灰度處理

        圖1 GUI 主界面Fig.1 The main interface of GUI

        讀入需要提取的原始圖像后,首先是對(duì)圖像進(jìn)行灰度處理。包括灰度變換和灰度閾值的設(shè)定。點(diǎn)擊主界面右側(cè)下方的 “灰度轉(zhuǎn)換” 按鈕,程序會(huì)將原彩色圖像轉(zhuǎn)換為灰度圖像。轉(zhuǎn)換為灰度圖像后,可對(duì)灰度閾值進(jìn)行設(shè)置。主界面 (圖1) 右側(cè)的最上方是 “灰度圖閾值調(diào)整” 面板??梢杂脙蓚€(gè)滑動(dòng)條調(diào)整灰度圖的最小和最大閾值。所有灰度值小于最小閾值或大于最大閾值的像素將會(huì)被過(guò)濾掉。合理地調(diào)整閾值可以去掉圖像中無(wú)關(guān)的部分。

        在這幅圖像中有兩條曲線,而需要提取的是上方的曲線,如圖2 所示。當(dāng)灰度圖閾值的最小和最大值分別被設(shè)定為48 和114 時(shí),圖像中的大部分干擾像素(如坐標(biāo)網(wǎng)格線和下方的曲線)都被去掉或變淡了。

        圖2 灰度處理效果Fig.2 The effect of gray processing

        2.2 二值圖像變換與形態(tài)學(xué)細(xì)化處理

        下一步是將灰度圖像變換為二值圖像。在點(diǎn)擊主界面右側(cè)下方的 “二值轉(zhuǎn)換” 按鈕后,程序會(huì)完成三步操作: 第一步,將灰度圖像轉(zhuǎn)換為二值圖像;第二步,將二值圖像形態(tài)學(xué)細(xì)化;第三步,刪除二值圖所有的交叉。例如,曲線與背景坐標(biāo)格相交叉處的像素將會(huì)被刪除。因此,曲線在與坐標(biāo)格相交的地方會(huì)斷開(kāi)。這是為后面的形態(tài)學(xué)重構(gòu)做準(zhǔn)備。

        2.3 選點(diǎn)與形態(tài)學(xué)重構(gòu)

        經(jīng)過(guò)2.2 中的處理后,由于曲線在與背景坐標(biāo)格的交點(diǎn)處會(huì)被斷開(kāi),因此曲線會(huì)被分為幾段。只需在每段曲線上任選一點(diǎn),之后進(jìn)行形態(tài)學(xué)重構(gòu),就可將曲線提取出來(lái)。現(xiàn)選如圖3(為使圖片清晰,圖3 中的線條已被加粗)所示的7 個(gè)點(diǎn)。

        圖3 選點(diǎn)Fig.3 Points selection

        表1 點(diǎn)的位置Tab.1 Points position

        這7 個(gè)點(diǎn)在圖像中的位置見(jiàn)表1。首先在程序主界面的 “選點(diǎn)” 面板中輸入第一個(gè)點(diǎn)在圖像中的位置: X:112,Y:413,然后點(diǎn)擊 “選定”,這時(shí)程序會(huì)針對(duì)該點(diǎn)做形態(tài)學(xué)重構(gòu)運(yùn)算。該運(yùn)算可以將與選定點(diǎn)相連的全部像素還原,在這里也就是將該點(diǎn)所在的曲線段還原。在2.2 節(jié)中,已將曲線與背景坐標(biāo)格相交叉處的像素刪除,這就使曲線與背景線條斷開(kāi),因此在形態(tài)學(xué)重構(gòu)時(shí)不會(huì)將背景線條還原。這樣就可得到第1 點(diǎn)所在的曲線段。同樣,在輸入其余各點(diǎn)在圖像中的坐標(biāo)后,點(diǎn)擊“選定”,就可得到全部曲線。如圖4 所示。

        圖4 曲線圖像提取結(jié)果Fig.4 The extraction results of curve image

        2.4 完成曲線提取并儲(chǔ)存數(shù)據(jù)

        雖然已將曲線從圖像中提取出來(lái),但此時(shí)得到的只是曲線上各點(diǎn)在圖像中的位置而不是在坐標(biāo)系中的值。因此還要將各點(diǎn)像素在圖像處的行值與列值換算成坐標(biāo)值。因?yàn)樵趯?shí)際的曲線中,一個(gè)橫坐標(biāo)值只能對(duì)應(yīng)一個(gè)縱坐標(biāo)值。所以在圖4中,當(dāng)一列中有多個(gè)像素點(diǎn)時(shí),則取他們行值的均值。之后進(jìn)行換算,換算公式為:

        式中: xn—第n 個(gè)點(diǎn)的橫坐標(biāo);xmin—曲線左端點(diǎn)的橫坐標(biāo);xmax—曲線右端點(diǎn)的橫坐標(biāo);cn—曲線上第n 個(gè)點(diǎn)所在的列數(shù);cmin—曲線左端點(diǎn)所在的列數(shù);cmax—曲線右端點(diǎn)所在的列數(shù);yn—曲線上第n 個(gè)點(diǎn)的縱坐標(biāo);ymin—曲線縱坐標(biāo)的最小值;ymax—曲線縱坐標(biāo)的最大值;rn—曲線上第n 個(gè)點(diǎn)所在的行數(shù);rmin—曲線最低點(diǎn)所在的行數(shù);rmax—曲線最高點(diǎn)所在的行數(shù)。

        在主界面中分別輸入橫坐標(biāo)的最小值xmin=1000、最大值xmax=6000;縱坐標(biāo)的最小值ymin=131、最大值ymax=221,然后點(diǎn)擊 “生成曲線”,就可以得到最終的曲線,如圖5所示。同時(shí)將曲線的坐標(biāo)數(shù)據(jù)儲(chǔ)存在了curve.mat 數(shù)據(jù)文件中,方便以后隨時(shí)調(diào)用。當(dāng)在Matlab 中導(dǎo)入curve.mat 文件時(shí),可以得到其中包含的兩個(gè)1維 數(shù)組curvex 和 curvey,curvex 中的第n 項(xiàng)和curvey中的第n 項(xiàng)對(duì)應(yīng)于曲線第n個(gè)點(diǎn)的橫坐標(biāo)和縱坐標(biāo)。

        圖5 提取出的最終曲線圖Fig.5 The final result of extraction

        3 結(jié)論

        (1)這種方法的優(yōu)點(diǎn)是能夠克服圖像背景的干擾。先在灰度處理的部分通過(guò)調(diào)整灰度圖像的上下閾值,去掉背景中與曲線灰度值相差較大的部分;之后運(yùn)用形態(tài)學(xué)運(yùn)算進(jìn)一步消除掉背景中與曲線灰度值相進(jìn)的部分,如坐標(biāo)網(wǎng)格線和坐標(biāo)軸。

        (2)調(diào)用數(shù)據(jù)文件并使用Matlab 的插值或曲線擬合函數(shù)得到該曲線上任意一點(diǎn)的坐標(biāo)值非常便捷。

        (3)適用范圍較廣,除在文中用于提取發(fā)動(dòng)機(jī)外特性曲線外,還可在食品、塑料等工程領(lǐng)域發(fā)揮作用。如提取微生物生長(zhǎng)曲線以研究其對(duì)食品儲(chǔ)存的影響,以及提取塑料材料的應(yīng)力、黏度曲線等。

        [1] 晏暉,姜鵬,陳貝. 基于Matlab 工具箱的數(shù)字圖像處理技術(shù)[J]. 微計(jì)算機(jī)信息,2010,26(29-2):214-216.

        [2] Gonzalez R C,Woods R E,Eddins SL,et. 數(shù)字圖像處理的MATLAB 實(shí)現(xiàn)(第3 版)[M]. 北京:清華大學(xué)出版社,2013.

        [3] 陳垚光,毛濤濤,王正林,等. 精通MATLAB GUI 設(shè)計(jì)(第3 版)[M]. 北京:電子工業(yè)出版社,2013.

        猜你喜歡
        二值工具箱數(shù)組
        JAVA稀疏矩陣算法
        混沌偽隨機(jī)二值序列的性能分析方法研究綜述
        支持CNN與LSTM的二值權(quán)重神經(jīng)網(wǎng)絡(luò)芯片
        JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
        基于二值形態(tài)學(xué)算子的軌道圖像分割新算法
        視頻圖像文字的二值化
        Matlab曲線擬合工具箱在地基沉降預(yù)測(cè)模型中的應(yīng)用
        尋找勾股數(shù)組的歷程
        搜狗分號(hào)工具箱 輸入更便捷
        小熊的工具箱
        婷婷亚洲综合五月天小说| 精品一区二区av天堂色偷偷| 男人一插就想射的原因| 中文字幕人妻饥渴浪妇| 中国女人做爰视频| 国产午夜视频在永久在线观看| 淫欲一区二区中文字幕| 亚洲不卡在线免费视频| 大地资源网高清在线播放| 国产精品成人av在线观看| 91精品国产无码在线观看| 亚洲av激情一区二区| 一本色道久久88亚洲精品综合| 免费精品无码av片在线观看| 国产三级视频在线观看视主播| 日本少妇熟女一区二区| 日本另类αv欧美另类aⅴ| 亚洲精品无码久久毛片| 亚洲国产不卡av一区二区三区| 最新中文字幕亚洲一区| 国产一区二区三区乱码| 国产在线一91区免费国产91| 日本中文字幕一区二区视频| 久久精品女人av一区二区| 欧美大成色www永久网站婷| 无码熟妇人妻AV影音先锋| 日本熟妇免费一区二区三区| 欧美大片va欧美在线播放| 亚洲av电影天堂男人的天堂| AV无码免费不卡在线观看| 中文字幕有码在线亚洲| 亚洲精品久久久av无码专区| 99精品视频免费热播| 精品亚洲视频免费观看网站| 包皮上有一点一点白色的| 水蜜桃无码视频在线观看| 国产乱子伦视频一区二区三区| 日本一级片一区二区三区| 亚洲国产精品成人综合色| 亚洲综合国产精品一区二区99| 国产午夜福利av在线麻豆|