付昆昆,鄭百林,李鑫
(1.哈爾濱第703研究所,黑龍江哈爾濱150036;2.同濟大學航空航天與力學學院,上海200092;3.哈爾濱理工大學測控技術(shù)與通信工程學院,黑龍江哈爾濱150080)
基于Matlab的圖像曲線數(shù)據(jù)提取方法
付昆昆1,鄭百林2,李鑫3
(1.哈爾濱第703研究所,黑龍江哈爾濱150036;2.同濟大學航空航天與力學學院,上海200092;3.哈爾濱理工大學測控技術(shù)與通信工程學院,黑龍江哈爾濱150080)
對于文獻中圖的曲線數(shù)據(jù)的提取,提出一種通過采集像素點來識別曲線坐標的方法,并通過Matlab軟件實現(xiàn).首先用濾波器去除圖片噪聲,并確定用于灰度圖轉(zhuǎn)化為二值黑白圖的閾值,然后通過搜索坐標框在灰度矩陣中的位置來確定真實坐標與灰度矩陣坐標的比例因子,最后獲取曲線各像素點在灰度矩陣的坐標,并乘以比例因子得到曲線各點的坐標值.對曲線圖像進行處理的結(jié)果表明,這種方法提取的數(shù)據(jù)準確,相對誤差在-0.7%~+1.2%范圍內(nèi),精度取決于原圖像像素點的數(shù)目.
曲線數(shù)據(jù)提?。幌袼兀婚撝?;二值圖
在閱讀文獻過程中,讀者為了更好地理解研究者的研究思路和成果,經(jīng)常需要查取文獻中一些以曲線圖給出的研究數(shù)據(jù),而通過觀察曲線圖不能準確地得到其坐標值.為了準確提取圖中曲線的坐標值,需要對文獻中的曲線圖進行數(shù)據(jù)處理.
目前,對文獻圖中曲線數(shù)據(jù)的提取主要有兩種方法:一是通過坐標紙讀出其數(shù)據(jù),隨著計算機的發(fā)展,也可利用圖像處理軟件,通過手工標出曲線坐標原點和曲線上各點,并輸入坐標范圍而生成標出各點的坐標值;二是將圖片轉(zhuǎn)化成矢量化格式[1],輸入到圖像處理軟件中,生成曲線各點的坐標值.
方法一受限于人的視覺和標記的精度,手工不可能準確地標記曲線中的每一點,而對于一些研究,曲線數(shù)據(jù)的精度起著至關(guān)重要的作用,并且,如果曲線波動頻繁,形狀復(fù)雜,則必須縮小取點間隔,這就增加了工作的復(fù)雜性;方法二進行矢量化處理,方法簡便,且不用手工標記,但受限于圖片的質(zhì)量,且矢量化方法生成的曲線不準確,一般為圖像的邊緣.
本文提出一種通過搜索坐標框和采集像素點來識別圖片中曲線坐標的方法,避免了手工標記的復(fù)雜和誤差,獲取的曲線數(shù)據(jù)具有較高的精度.
RGB圖像的亮度值直接存于圖像數(shù)組中,分別用紅、綠、藍3種亮度值代表每個像素顏色的矩陣,為M×N×3階矩陣,其中M、N表示圖像像素的行、列數(shù).而灰度圖像保存在二維矩陣中,矩陣的每個元素代表一個像素點.若為unit8類型,則其數(shù)據(jù)范圍為[0,256].矩陣的每個元素值代表不同的亮度或灰度,亮度值為0,表示黑色,亮度值為255,代表白色,其余表示不同的灰度.而二值圖可看成是僅包括黑色與白色的特殊灰度圖像[2].
灰度閾值化方法是最常用的圖像分割方法,只要選取一個適當?shù)拈撝?,并與每個像素灰度值比較,像素灰度值超過閾值則重新分配為最大灰度,低于閾值分配為最小灰度,分配完成就組成一個新的二值圖像,從而把目標物體從背景中分離出來.大津法[3]是求取閾值最簡單有效的方法,適用于圖像的二值化,其基本思想是根據(jù)圖像的灰度直方圖將原圖像分為兩部分,背景和目標物體,使得兩部分的類間方差最大.
未經(jīng)處理的原始圖像都存在著一定程度的噪聲干擾,使圖像質(zhì)量變差,甚至淹沒了特征.消除圖像噪聲的工作可以稱為圖像平滑或濾波,目的是改善圖像質(zhì)量和抽出對象特征[4],主要方法有均值濾波法,中值濾波法,維納濾波法和小波變換法等[5-6].
本文方法基本原理是將曲線轉(zhuǎn)換為二值黑白圖,通過搜索坐標框在圖像矩陣中的位置,與真實坐標框大小相比較來確定比例因子,將除曲線外所有特征如坐標框、標尺、標注及圖片噪聲等都設(shè)為背景色(白色),進而搜索到曲線的像素點在灰度矩陣的坐標,乘以比例因子就得到曲線各點的真實坐標值.對于有多Y值的像素點,對Y值進行均值處理,得到曲線各點的坐標值.
將曲線圖像(一般是RGB圖像)以圖片的格式導入到Matlab軟件中,用函數(shù)rgb2gray轉(zhuǎn)化為灰度圖像.再用Matlab中的中值濾波器進行濾波,初步去掉一些噪聲,此時圖像的像素具有不同灰度等級.為了刪去一些不必要的特征,如圖上的水印等,可以通過設(shè)定一個閾值,將灰度圖轉(zhuǎn)化為二值黑白圖像.由于水印等的灰度值與背景色(大多為白色)和曲線的灰度值有差異,一般把閾值設(shè)為低于水印灰度值即可消除水印,但一些背景色灰度值較低且曲線占據(jù)圖像面積較大的圖片,因為難以找到水印灰度值的范圍,需要用大津法找到合適的閾值來進行圖片的轉(zhuǎn)換.
比例因子是通過搜索坐標框來定的.通過編程,搜索出坐標框各角點在灰度矩陣的位置,與實際坐標相比,可以定出比例因子.為了精確,需要考慮坐標框的寬度.在圖片中對矩陣的每行每列進行搜索,若每行或每列三分之二的元素值累加仍然不大于一定的灰度值(通常為零),那么可以認為該列或該行為坐標框.得到坐標框的精確位置后,為了提取曲線坐標,可將坐標框和框外的區(qū)域設(shè)為背景色(白色),再以框的內(nèi)邊為搜索起點,找到標尺位置,將其也設(shè)為背景色.這樣,圖片中就只剩下曲線像素點,即像素灰度值為0的點,于是就得到了曲線在矩陣中的位置.根據(jù)比例因子,就得到曲線上各像素點的實際坐標.若同一橫軸上的像素點由于曲線較粗,可能存在同一X值對應(yīng)多Y值的現(xiàn)象,本方法對此類點取其計算值的均值處理.由于本方法是基于像素點的捕捉,只要曲線圖像精度高,即像素點數(shù)目多,能夠準確地表征其曲線特征,則提取的數(shù)據(jù)就非常準確.
圖1 圖像的曲線數(shù)據(jù)提取
根據(jù)上節(jié)方法編制程序.為了體現(xiàn)該方法比手工標記數(shù)據(jù)法適應(yīng)性廣,選取波動較頻繁的曲線圖[7],為了驗證濾波器的作用,在原始圖像上加入了強度為0.02的“椒鹽”噪聲,如圖1(a)所示.圖像經(jīng)轉(zhuǎn)換為灰度圖后用二維濾波器過濾,發(fā)現(xiàn)噪聲幾乎全被過濾掉,如圖1(b)所示.計算灰度矩陣的灰度直方圖,如圖1(c)所示,發(fā)現(xiàn)大部分背景色是灰度值為255的白色,此時用大津法求取閾值為253,結(jié)果不能夠分離出水印及一些殘余噪聲.觀察圖1(c),發(fā)現(xiàn)在245處累加值已經(jīng)降為很小,此時可認為水印、噪點等的灰度值在245以上,但為了避免一些特殊情況,例如只有個別的噪點存在,此時會比245稍小,故選取灰度值為200作為閾值,得到二值黑白圖像如圖1(d)所示,發(fā)現(xiàn)選取的閾值將剩余的噪聲去除了.運行整個程序,最終得到曲線的XY坐標并作圖,如圖1(e)所示,提取出了原圖像質(zhì)量較差且波動頻繁的曲線數(shù)據(jù).
為了驗證本文方法的準確性,取函數(shù)關(guān)系為y=sin x+25cos(5x)+ex/2+200的曲線圖像如圖2(a)所示,用本文方法進行曲線提取,從局部圖可以看到圖像是由一系列像素點組成.運行程序,得到曲線坐標圖如圖2(b)所示,與原圖吻合.取其橫坐標為3.5~4,縱坐標為210~235的圖像放大,觀察像素坐標點和本文方法得到的曲線,如圖2(c)所示.在這些多Y值的像素點處取均值,結(jié)果說明像素點數(shù)目越多,曲線的表征就越完整.
圖2 提取的曲線數(shù)據(jù)準確度和誤差分析
事先知道函數(shù)的關(guān)系,通過相對誤差可以判斷該方法與實際值的相似程度,也就是該方法的準確度.相對誤差σ定義為測量值與真實值之差與真實值的最大值和最小值之差的比值,即計算結(jié)果如圖2(d)所示.其相對誤差在-0.7%~+1.2%范圍內(nèi)波動,且相對誤差的均值為0.001 8,說明整體偏差在0.18%處;標準差為0.008 4,說明曲線整體數(shù)據(jù)偏離均值很小.可認為本方法得到的曲線坐標精密度和準確度都非常高.因此,本方法可以較精確地識別出曲線的坐標值.
對于文獻中圖的曲線數(shù)據(jù)的提取,可以按如下方法進行.
1)通過Matlab軟件將帶有噪聲的圖片轉(zhuǎn)化為灰度圖后進行二維濾波,初步去除噪聲.
2)因為大部分圖線的背景色為白色且占據(jù)非常大的面積,設(shè)定合適的閾值即可分開成二值黑白圖像,而對于一些背景色灰度值較低且曲線占據(jù)圖像面積較大的圖片,需要通過大津法找到最優(yōu)的閾值來處理.
3)通過確定坐標框或軸位置的方法來確定比例因子,并通過搜索,將除曲線外的坐標像素點全部設(shè)為背景色,可方便準確地提取曲線像素點,對于多Y值的像素點則需要作均值處理.
4)通過本文方法得到的圖像曲線與原始曲線相比,數(shù)據(jù)非常吻合,相對誤差在-0.7%~+1.2%范圍內(nèi),其精度取決于像素點的數(shù)目.本方法具有一定的實際應(yīng)用意義.
[1] 司三平.原圖掃描屏幕矢量化技術(shù)在水電建設(shè)中的應(yīng)用[J].西北水電,2009(4):73-77.
[2] 王曉丹,吳崇明.基于MATLAB的系統(tǒng)分析與設(shè)計——圖像處理[M].西安:西安電子科技大學出版社,2000:21-22.
[3] 王磊,段會川.Otsu方法在多閾值圖像分割中的應(yīng)用[J].計算機工程與設(shè)計,2008(29):2844-2 845.
[4] 夏德深,傅德勝.現(xiàn)代圖像處理技術(shù)與應(yīng)用[M].南京:東南大學出版社,1997:49-54.
[5] 高克芳,郭建鋼.一種基于噪聲點檢測的自適應(yīng)中值濾波方法[J].福建農(nóng)林大學學報,2009(38):333-336.
[6] 陶澤明,裴玉龍,杜文剛.基于MATLAB的車輛圖像濾波[J].哈爾濱理工大學學報,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-),男,黑龍江同江人,碩士研究生.研究方向:船舶動力機械傳動設(shè)計及其振動理論.E-mail:stone_fkk@163.com