本發(fā)明屬于測量技術(shù)領(lǐng)域,特別涉及一種基于圖像分析的非接觸性面積測量方法。
背景技術(shù):
目前,對于面積的測算方法普遍應(yīng)用的是:方格紙法、基于數(shù)字圖像分析的測量法以及基于圖像測量技術(shù)的接觸面積測量方法,方格紙法雖然便宜而且快捷,但是缺點也十分明顯無法測到一個較為精準的面積數(shù)值而且必須要接觸到被測量物體,而且測量誤差較大;基于數(shù)字圖像分析的測量法可以得到很準確的結(jié)果,但是需要預先對測量系統(tǒng)進行調(diào)試,相機與測量平面都有嚴格的參數(shù)要求,且一旦搭建成功無法自由移動;另外基于圖像測量技術(shù)的接觸面積測量方法,雖然可以滿足在不同環(huán)境下對目標圖像進行測量,而且所需設(shè)備廉價,但使用這種方法必須要對被測量目標進行接觸,而有些環(huán)境下的測量工作是不允許與被測目標直接接觸的。
由此看來,現(xiàn)有的面積測量方法對測量環(huán)境要求較高或者無法得到精確的測量結(jié)果,對于一些不規(guī)則形狀或者空間面積的測量以及高溫或高壓條件下不能直接接觸的特殊環(huán)境的面積測算則無法實現(xiàn),不能滿足非接觸性環(huán)境的面積測算需求。
技術(shù)實現(xiàn)要素:
為了克服現(xiàn)有方法所存在的不足,本發(fā)明提供了一種相機無需與被測物體直接接觸并且測算精度高、自由度高的基于圖像分析的非接觸性面積測量方法。
本發(fā)明所采用的技術(shù)方案是:
基于相機的圖形面積測量方法由以下步驟組成:
(1)對相機進行標定提取相機的內(nèi)參矩陣K和旋轉(zhuǎn)變量[R t];
(2)用相機對被測目標進行任意角度拍攝,用圖像分離算法去除背景提取出所采集的圖像中的目標圖像;
(3)提取目標圖像的像素點,將每一個像素點對應(yīng)的四個角點坐標值存入鏈表中,構(gòu)成查詢鏈表;
(4)利用小孔成像公式和步驟(1)的內(nèi)參矩陣對查詢鏈表中的每一個角點坐標進行還原,并更新查詢鏈表;
(5)利用更新的查詢鏈表中分布在同一個像素點的四個角點計算出該像素點對應(yīng)的面積,并對所有像素點對應(yīng)的面積求和,得到被測目標的實際面積。
上述步驟(1)具體方法是:
(1.1)制作棋盤標定板;
(1.2)從不同角度對標定板進行拍照,獲取圖像;
(1.3)利用MATLAB標定箱或基于Opencv的標定算法對步驟(1.2)的圖像進行標定,得到該相機的內(nèi)參矩陣K和旋轉(zhuǎn)變量[R t]。
上述圖像分離算法是流水沖蝕算法或閾值法。
上述步驟(4)具體是由以下操作實現(xiàn):
(4.1)根據(jù)小孔成像公式km=K[R t]M,令H=K[R t],即得到H-1km=M;
(4.2)根據(jù)H-1km=M計算得到查詢鏈表中的每一個像素點的角點圖像坐標對應(yīng)的實際坐標,其中M為查詢鏈表中像素點對應(yīng)的四個角點的實際坐標集;m為查詢鏈表中像素點對應(yīng)的四個角點的圖像坐標集;
(4.3)將所得每一個像素點的角點圖像坐標對應(yīng)的實際坐標存入查詢鏈表中。
本發(fā)明所涉及的基于圖像分析的非接觸性面積測量方法,是基于小孔成像原理通過對相機進行預先標定,采集目標物體的圖像,對其進行目標分離處理,實現(xiàn)了連續(xù)的高精度測量,精度可達像素級別,而且本發(fā)明的相機無需與被測物直接接觸,獲取圖像時沒有角度要求,可以從任意角度拍照,自由度極高,適用于高溫、高壓或無法近距離測量的環(huán)境,此外,本發(fā)明操作簡單、低消耗,數(shù)據(jù)處理可以自動化完成,適于工業(yè)化推廣應(yīng)用,特別是在農(nóng)業(yè)中對不同植物葉片面積的測量以及醫(yī)療中對病變面積的測量、國界領(lǐng)海劃分等有積極意義。
附圖說明
圖1為本發(fā)明的面積測量方法流程圖。
圖2為標定板圖像。
具體實施方式
現(xiàn)結(jié)合附圖和實施例對本發(fā)明的技術(shù)方案進一步說明,但是本發(fā)明不僅限于下述的實施情形。
本實施例以測量樹葉面積為例,利用相機和計算機實現(xiàn)對長在樹上的一片樹葉的面積測量,相機采用MV-750高分辨率攝像頭,參見圖1,具體方法由以下步驟實現(xiàn):
步驟(1):對相機進行標定提取相機的內(nèi)參矩陣K和旋轉(zhuǎn)變量[R t],具體為:
(1.1)制作10cm×20cm的棋盤標定板;
(1.2)從不同角度對標定板進行拍照,獲取20張圖像,參見圖2;
(1.3)利用MATLAB標定箱對步驟(1.2)的圖像進行標定,得到該相機的內(nèi)參矩陣和旋轉(zhuǎn)變量[R t]。
步驟(2):用相機在任意角度對樹葉進行拍攝,將所拍的照片用流水沖蝕算法進行圖像處理,去除背景,提取出所采集的圖像中的目標樹葉圖像;
在圖像中邊界代表著一個特征區(qū)域的終點和一個特征區(qū)域的起點,邊界所分開區(qū)域的內(nèi)部特征一致,不同區(qū)域的內(nèi)部特征有較大的差別,邊界識別正是通過這些差別來實現(xiàn)的,這種差別包括灰度,顏色等。本實施例中利用了灰度值得差異,利用目標樹葉圖像與背景的明顯灰度值差異,將目標樹葉圖像分離出來。
步驟(3):提取目標樹葉圖像的2438個像素點,將每一個像素點對應(yīng)的四個角點坐標值存入鏈表中,構(gòu)成查詢鏈表;
圖像中的每個像素實際上代表一個小方塊,它由4個角點組成,這4個角點在一般情況下不是長方形,而是一個四邊形,利用4點坐標,就能求到這4個角點所組成的像素點的面積,因此需先將所提取的像素點對應(yīng)的角點坐標存入鏈表中。
步驟(4)利用小孔成像公式和步驟(1)的內(nèi)參矩陣對查詢鏈表中的每一個角點坐標進行還原,并更新查詢鏈表;具體是:
(4.1)根據(jù)小孔成像公式km=K[R t]M,令H=K[R t],即得到H-1km=M;
由于圖像平面上的一個點通過單應(yīng)性矩陣H變換,變換到現(xiàn)實平面中為一個點,即只能夠知道現(xiàn)實平面中一些零散點的坐標,因此,得到每一個像素點對應(yīng)的四個角點坐標值還無法直接確定樹葉在現(xiàn)實平面中的面積。
(4.2)利用公式H-1km=M,分別計算查詢鏈表中2438個像素點的角點圖像坐標對應(yīng)的實際坐標,其中M為查詢鏈表中每個像素點對應(yīng)的四個角點的實際坐標集;m為查詢鏈表中每個像素點對應(yīng)的四個角點的圖像坐標集;
(4.3)將所得每一個像素點的角點圖像坐標對應(yīng)的實際坐標存入查詢鏈表,即更新查詢鏈表。
步驟(5):利用更新的查詢鏈表中分布在同一個像素點的四個角點計算出該像素點對應(yīng)的面積,并對所有像素點對應(yīng)的面積求和,得到目標樹葉的實際面積。
上述步驟(1.3)中,對標定板的圖像進行標定時還可以采用基于Opencv的標定算法進行標定,來替換MATLAB標定箱,兩者均可。此外,在步驟(2)中的圖像分離算法具體還可以用閾值法進行圖像分離,其目的就是去除背景,提取目標圖像。對于上述實施例中未詳細描述的處理過程均屬于常規(guī)方法。