付昆昆,鄭百林,李鑫
(1.哈爾濱第703研究所,黑龍江哈爾濱150036;2.同濟(jì)大學(xué)航空航天與力學(xué)學(xué)院,上海200092;3.哈爾濱理工大學(xué)測(cè)控技術(shù)與通信工程學(xué)院,黑龍江哈爾濱150080)
基于Matlab的圖像曲線數(shù)據(jù)提取方法
付昆昆1,鄭百林2,李鑫3
(1.哈爾濱第703研究所,黑龍江哈爾濱150036;2.同濟(jì)大學(xué)航空航天與力學(xué)學(xué)院,上海200092;3.哈爾濱理工大學(xué)測(cè)控技術(shù)與通信工程學(xué)院,黑龍江哈爾濱150080)
對(duì)于文獻(xiàn)中圖的曲線數(shù)據(jù)的提取,提出一種通過采集像素點(diǎn)來識(shí)別曲線坐標(biāo)的方法,并通過Matlab軟件實(shí)現(xiàn).首先用濾波器去除圖片噪聲,并確定用于灰度圖轉(zhuǎn)化為二值黑白圖的閾值,然后通過搜索坐標(biāo)框在灰度矩陣中的位置來確定真實(shí)坐標(biāo)與灰度矩陣坐標(biāo)的比例因子,最后獲取曲線各像素點(diǎn)在灰度矩陣的坐標(biāo),并乘以比例因子得到曲線各點(diǎn)的坐標(biāo)值.對(duì)曲線圖像進(jìn)行處理的結(jié)果表明,這種方法提取的數(shù)據(jù)準(zhǔn)確,相對(duì)誤差在-0.7%~+1.2%范圍內(nèi),精度取決于原圖像像素點(diǎn)的數(shù)目.
曲線數(shù)據(jù)提取;像素;閾值;二值圖
在閱讀文獻(xiàn)過程中,讀者為了更好地理解研究者的研究思路和成果,經(jīng)常需要查取文獻(xiàn)中一些以曲線圖給出的研究數(shù)據(jù),而通過觀察曲線圖不能準(zhǔn)確地得到其坐標(biāo)值.為了準(zhǔn)確提取圖中曲線的坐標(biāo)值,需要對(duì)文獻(xiàn)中的曲線圖進(jìn)行數(shù)據(jù)處理.
目前,對(duì)文獻(xiàn)圖中曲線數(shù)據(jù)的提取主要有兩種方法:一是通過坐標(biāo)紙讀出其數(shù)據(jù),隨著計(jì)算機(jī)的發(fā)展,也可利用圖像處理軟件,通過手工標(biāo)出曲線坐標(biāo)原點(diǎn)和曲線上各點(diǎn),并輸入坐標(biāo)范圍而生成標(biāo)出各點(diǎn)的坐標(biāo)值;二是將圖片轉(zhuǎn)化成矢量化格式[1],輸入到圖像處理軟件中,生成曲線各點(diǎn)的坐標(biāo)值.
方法一受限于人的視覺和標(biāo)記的精度,手工不可能準(zhǔn)確地標(biāo)記曲線中的每一點(diǎn),而對(duì)于一些研究,曲線數(shù)據(jù)的精度起著至關(guān)重要的作用,并且,如果曲線波動(dòng)頻繁,形狀復(fù)雜,則必須縮小取點(diǎn)間隔,這就增加了工作的復(fù)雜性;方法二進(jìn)行矢量化處理,方法簡(jiǎn)便,且不用手工標(biāo)記,但受限于圖片的質(zhì)量,且矢量化方法生成的曲線不準(zhǔn)確,一般為圖像的邊緣.
本文提出一種通過搜索坐標(biāo)框和采集像素點(diǎn)來識(shí)別圖片中曲線坐標(biāo)的方法,避免了手工標(biāo)記的復(fù)雜和誤差,獲取的曲線數(shù)據(jù)具有較高的精度.
RGB圖像的亮度值直接存于圖像數(shù)組中,分別用紅、綠、藍(lán)3種亮度值代表每個(gè)像素顏色的矩陣,為M×N×3階矩陣,其中M、N表示圖像像素的行、列數(shù).而灰度圖像保存在二維矩陣中,矩陣的每個(gè)元素代表一個(gè)像素點(diǎn).若為unit8類型,則其數(shù)據(jù)范圍為[0,256].矩陣的每個(gè)元素值代表不同的亮度或灰度,亮度值為0,表示黑色,亮度值為255,代表白色,其余表示不同的灰度.而二值圖可看成是僅包括黑色與白色的特殊灰度圖像[2].
灰度閾值化方法是最常用的圖像分割方法,只要選取一個(gè)適當(dāng)?shù)拈撝?,并與每個(gè)像素灰度值比較,像素灰度值超過閾值則重新分配為最大灰度,低于閾值分配為最小灰度,分配完成就組成一個(gè)新的二值圖像,從而把目標(biāo)物體從背景中分離出來.大津法[3]是求取閾值最簡(jiǎn)單有效的方法,適用于圖像的二值化,其基本思想是根據(jù)圖像的灰度直方圖將原圖像分為兩部分,背景和目標(biāo)物體,使得兩部分的類間方差最大.
未經(jīng)處理的原始圖像都存在著一定程度的噪聲干擾,使圖像質(zhì)量變差,甚至淹沒了特征.消除圖像噪聲的工作可以稱為圖像平滑或?yàn)V波,目的是改善圖像質(zhì)量和抽出對(duì)象特征[4],主要方法有均值濾波法,中值濾波法,維納濾波法和小波變換法等[5-6].
本文方法基本原理是將曲線轉(zhuǎn)換為二值黑白圖,通過搜索坐標(biāo)框在圖像矩陣中的位置,與真實(shí)坐標(biāo)框大小相比較來確定比例因子,將除曲線外所有特征如坐標(biāo)框、標(biāo)尺、標(biāo)注及圖片噪聲等都設(shè)為背景色(白色),進(jìn)而搜索到曲線的像素點(diǎn)在灰度矩陣的坐標(biāo),乘以比例因子就得到曲線各點(diǎn)的真實(shí)坐標(biāo)值.對(duì)于有多Y值的像素點(diǎn),對(duì)Y值進(jìn)行均值處理,得到曲線各點(diǎn)的坐標(biāo)值.
將曲線圖像(一般是RGB圖像)以圖片的格式導(dǎo)入到Matlab軟件中,用函數(shù)rgb2gray轉(zhuǎn)化為灰度圖像.再用Matlab中的中值濾波器進(jìn)行濾波,初步去掉一些噪聲,此時(shí)圖像的像素具有不同灰度等級(jí).為了刪去一些不必要的特征,如圖上的水印等,可以通過設(shè)定一個(gè)閾值,將灰度圖轉(zhuǎn)化為二值黑白圖像.由于水印等的灰度值與背景色(大多為白色)和曲線的灰度值有差異,一般把閾值設(shè)為低于水印灰度值即可消除水印,但一些背景色灰度值較低且曲線占據(jù)圖像面積較大的圖片,因?yàn)殡y以找到水印灰度值的范圍,需要用大津法找到合適的閾值來進(jìn)行圖片的轉(zhuǎn)換.
比例因子是通過搜索坐標(biāo)框來定的.通過編程,搜索出坐標(biāo)框各角點(diǎn)在灰度矩陣的位置,與實(shí)際坐標(biāo)相比,可以定出比例因子.為了精確,需要考慮坐標(biāo)框的寬度.在圖片中對(duì)矩陣的每行每列進(jìn)行搜索,若每行或每列三分之二的元素值累加仍然不大于一定的灰度值(通常為零),那么可以認(rèn)為該列或該行為坐標(biāo)框.得到坐標(biāo)框的精確位置后,為了提取曲線坐標(biāo),可將坐標(biāo)框和框外的區(qū)域設(shè)為背景色(白色),再以框的內(nèi)邊為搜索起點(diǎn),找到標(biāo)尺位置,將其也設(shè)為背景色.這樣,圖片中就只剩下曲線像素點(diǎn),即像素灰度值為0的點(diǎn),于是就得到了曲線在矩陣中的位置.根據(jù)比例因子,就得到曲線上各像素點(diǎn)的實(shí)際坐標(biāo).若同一橫軸上的像素點(diǎn)由于曲線較粗,可能存在同一X值對(duì)應(yīng)多Y值的現(xiàn)象,本方法對(duì)此類點(diǎn)取其計(jì)算值的均值處理.由于本方法是基于像素點(diǎn)的捕捉,只要曲線圖像精度高,即像素點(diǎn)數(shù)目多,能夠準(zhǔn)確地表征其曲線特征,則提取的數(shù)據(jù)就非常準(zhǔn)確.
圖1 圖像的曲線數(shù)據(jù)提取
根據(jù)上節(jié)方法編制程序.為了體現(xiàn)該方法比手工標(biāo)記數(shù)據(jù)法適應(yīng)性廣,選取波動(dòng)較頻繁的曲線圖[7],為了驗(yàn)證濾波器的作用,在原始圖像上加入了強(qiáng)度為0.02的“椒鹽”噪聲,如圖1(a)所示.圖像經(jīng)轉(zhuǎn)換為灰度圖后用二維濾波器過濾,發(fā)現(xiàn)噪聲幾乎全被過濾掉,如圖1(b)所示.計(jì)算灰度矩陣的灰度直方圖,如圖1(c)所示,發(fā)現(xiàn)大部分背景色是灰度值為255的白色,此時(shí)用大津法求取閾值為253,結(jié)果不能夠分離出水印及一些殘余噪聲.觀察圖1(c),發(fā)現(xiàn)在245處累加值已經(jīng)降為很小,此時(shí)可認(rèn)為水印、噪點(diǎn)等的灰度值在245以上,但為了避免一些特殊情況,例如只有個(gè)別的噪點(diǎn)存在,此時(shí)會(huì)比245稍小,故選取灰度值為200作為閾值,得到二值黑白圖像如圖1(d)所示,發(fā)現(xiàn)選取的閾值將剩余的噪聲去除了.運(yùn)行整個(gè)程序,最終得到曲線的XY坐標(biāo)并作圖,如圖1(e)所示,提取出了原圖像質(zhì)量較差且波動(dòng)頻繁的曲線數(shù)據(jù).
為了驗(yàn)證本文方法的準(zhǔn)確性,取函數(shù)關(guān)系為y=sin x+25cos(5x)+ex/2+200的曲線圖像如圖2(a)所示,用本文方法進(jìn)行曲線提取,從局部圖可以看到圖像是由一系列像素點(diǎn)組成.運(yùn)行程序,得到曲線坐標(biāo)圖如圖2(b)所示,與原圖吻合.取其橫坐標(biāo)為3.5~4,縱坐標(biāo)為210~235的圖像放大,觀察像素坐標(biāo)點(diǎn)和本文方法得到的曲線,如圖2(c)所示.在這些多Y值的像素點(diǎn)處取均值,結(jié)果說明像素點(diǎn)數(shù)目越多,曲線的表征就越完整.
圖2 提取的曲線數(shù)據(jù)準(zhǔn)確度和誤差分析
事先知道函數(shù)的關(guān)系,通過相對(duì)誤差可以判斷該方法與實(shí)際值的相似程度,也就是該方法的準(zhǔn)確度.相對(duì)誤差σ定義為測(cè)量值與真實(shí)值之差與真實(shí)值的最大值和最小值之差的比值,即計(jì)算結(jié)果如圖2(d)所示.其相對(duì)誤差在-0.7%~+1.2%范圍內(nèi)波動(dòng),且相對(duì)誤差的均值為0.001 8,說明整體偏差在0.18%處;標(biāo)準(zhǔn)差為0.008 4,說明曲線整體數(shù)據(jù)偏離均值很小.可認(rèn)為本方法得到的曲線坐標(biāo)精密度和準(zhǔn)確度都非常高.因此,本方法可以較精確地識(shí)別出曲線的坐標(biāo)值.
對(duì)于文獻(xiàn)中圖的曲線數(shù)據(jù)的提取,可以按如下方法進(jìn)行.
1)通過Matlab軟件將帶有噪聲的圖片轉(zhuǎn)化為灰度圖后進(jìn)行二維濾波,初步去除噪聲.
2)因?yàn)榇蟛糠謭D線的背景色為白色且占據(jù)非常大的面積,設(shè)定合適的閾值即可分開成二值黑白圖像,而對(duì)于一些背景色灰度值較低且曲線占據(jù)圖像面積較大的圖片,需要通過大津法找到最優(yōu)的閾值來處理.
3)通過確定坐標(biāo)框或軸位置的方法來確定比例因子,并通過搜索,將除曲線外的坐標(biāo)像素點(diǎn)全部設(shè)為背景色,可方便準(zhǔn)確地提取曲線像素點(diǎn),對(duì)于多Y值的像素點(diǎn)則需要作均值處理.
4)通過本文方法得到的圖像曲線與原始曲線相比,數(shù)據(jù)非常吻合,相對(duì)誤差在-0.7%~+1.2%范圍內(nèi),其精度取決于像素點(diǎn)的數(shù)目.本方法具有一定的實(shí)際應(yīng)用意義.
[1] 司三平.原圖掃描屏幕矢量化技術(shù)在水電建設(shè)中的應(yīng)用[J].西北水電,2009(4):73-77.
[2] 王曉丹,吳崇明.基于MATLAB的系統(tǒng)分析與設(shè)計(jì)——圖像處理[M].西安:西安電子科技大學(xué)出版社,2000:21-22.
[3] 王磊,段會(huì)川.Otsu方法在多閾值圖像分割中的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2008(29):2844-2 845.
[4] 夏德深,傅德勝.現(xiàn)代圖像處理技術(shù)與應(yīng)用[M].南京:東南大學(xué)出版社,1997:49-54.
[5] 高克芳,郭建鋼.一種基于噪聲點(diǎn)檢測(cè)的自適應(yīng)中值濾波方法[J].福建農(nóng)林大學(xué)學(xué)報(bào),2009(38):333-336.
[6] 陶澤明,裴玉龍,杜文剛.基于MATLAB的車輛圖像濾波[J].哈爾濱理工大學(xué)學(xué)報(bào),2008(13):18-20.
[7] Wang Y,Zhang W J.Stochastic vibrat ion model of gear t ransmission systems considering speeddependentrandom errors[J].Nonlinear Dynamics,1998(17):187-203.
Method of Data Extracting of Image Curve Based on Matlab
FU Kun-kun1,ZHENG Bai-lin2,LI Xin3
(1.Harbin Institute of 703,Harbin 150036,Heilongjiang,China;2.School of Aerospace Engineering and Applied Mechanics,Tongji University,Shanghai 200092,China;3.College of Measurement-Control Tech&Communications Engineering,Harbin University of Science and Technology,Harbin 150080,Heilongjiang,China)
A method of data extracting through Matlab programming is introduced.First,the image was denoised by filter,and optimal threshold value was used to converted gray scale image to binary image.Then,scaling factor was obtained by determining the location of frame of axis in gray scale matrix.All features except curves were set to white color,so that the data of curve were easily recognized and converted to real coordinate.The method is used to extract two types of curve of picture and the results show that data obtained via this method are precise.The relative error is between-0.7%to 1.2%and the precision mainly depends on the number of pixel point.
data extracting of curve;pixel;threshold value;binary image
TP 391.41
A
1001-4217(2010)02-0051-06
2009-11-03
付昆昆(1984-),男,黑龍江同江人,碩士研究生.研究方向:船舶動(dòng)力機(jī)械傳動(dòng)設(shè)計(jì)及其振動(dòng)理論.E-mail:stone_fkk@163.com