趙明
摘 要:提出了基于多通道色彩下的邊緣檢測和目標(biāo)識別方法,以及后期的以圓為參照的目標(biāo)尺寸計算方法。在前期預(yù)處理中采用卷積運算和銳化等圖像增強(qiáng)手段,利用Canny 算子檢測邊緣,然后通過目標(biāo)的幾何特征高效識別,以近似曲線逼近算法減小邊界點數(shù)據(jù)量。對于已經(jīng)透視變形目標(biāo),立體識別模式采用余弦修正法,平面識別模式采用最小包圍矩形法進(jìn)行校正,提高了目標(biāo)的計算精度。最后在 PC 端和Android 平臺下進(jìn)行算法實現(xiàn)。實驗結(jié)果表明,該預(yù)處理及檢測識別方法行之有效,能在移動設(shè)備上進(jìn)行快捷有效的圖像識別處理。
關(guān)鍵詞關(guān)鍵詞:圖像識別;邊緣檢測;物體測量
DOIDOI:10.11907/rjdk.162445
中圖分類號:TP312
文獻(xiàn)標(biāo)識碼:A 文章編號文章編號:16727800(2016)011004805
0 引言
在數(shù)字化和自動化時代,人們傾向于用更快捷有效的方法替代傳統(tǒng)的手工工作,如在一些自動化生產(chǎn)車間、物流公司的配送系統(tǒng),往往需要便捷獲取
物體(如箱子)尺寸,方法是手工測量或肉眼估計,效率和精度不高。目前,國內(nèi)外已開展了物體識別、圖像矯正等方面的研究,但是
直接通過參照物標(biāo)定未知目標(biāo)尺寸的例子還比較少[15]。在物體識別方面,常見的是用數(shù)據(jù)訓(xùn)練識別器,然后再對物體進(jìn)行識別(比如人臉識別)。
在圖像處理方面,透視變形是最常見也是影響較大的因素,對透視變形的矯正,已經(jīng)有一些技術(shù)[68],但只是對已知物體尺寸進(jìn)行校正(如 A4 文檔矯正)或者同比例(保持長寬比)情況下對目標(biāo)進(jìn)行矯正,而針對一張張獨立圖片還沒有適合的方法。
本文開發(fā)了一款基于 Android 手機(jī)平臺的物體長度測量 APP。運用圖像處理技術(shù),直接對手機(jī)相冊里的圖片進(jìn)行目標(biāo)識別、矯正和計算,得到物體尺寸。
1 算法設(shè)計
為實現(xiàn)從任意給定的一張圖片中識別出目標(biāo)物體并計算尺寸,需要經(jīng)過圖片預(yù)處理(過濾去噪)、邊緣檢測、目標(biāo)識別匹配、透視變形矯正和參照對比等步驟。每一環(huán)節(jié)的處理效果及速度,都會對最終結(jié)果產(chǎn)生明顯影響。
1.1 預(yù)處理
圖像處理中,首先需要對給定圖片數(shù)據(jù)進(jìn)行預(yù)處理,預(yù)處理主要是進(jìn)行去噪、銳化、圖像增強(qiáng)等操作,目的是為后期處理減少干擾,突出目標(biāo)。本文處理的圖片隨機(jī)拍照生成,拍攝背景、拍攝條件不盡相同,可能導(dǎo)致背景噪聲干擾淹沒目標(biāo)物,因而預(yù)處理目標(biāo)是確保原始信息不丟失且關(guān)鍵信息得到增強(qiáng)。
1.1.1 卷積運算
對圖像進(jìn)行卷積運算,可突出圖像細(xì)節(jié),增強(qiáng)對比度。卷積運算是利用一個矩陣核對一個小區(qū)域進(jìn)行操作,即掩碼運算。
要得到圖像某個特定位置的卷積值,可用下列方法計算:①將核的錨點放在該特定位置像素上,同時,核內(nèi)其它值與該像素鄰域的各像素重合;②將核內(nèi)各值與相應(yīng)像素值相乘,并將乘積相加;③將所得結(jié)果放到與錨點對應(yīng)的像素上;④對圖像所有像素重復(fù)上述過程。
1.1.2 銳化
圖像銳化是補(bǔ)償圖像的輪廓,增強(qiáng)圖像邊緣及灰度跳變部分,使圖像變得清晰。在計算機(jī)圖像處理中可用微分運算和高通濾波器來實現(xiàn)圖像銳化,即對空間域和頻域進(jìn)行銳化。
根據(jù)頻率分析,任何一幅圖像都是由決定圖像反差的低頻信號和決定圖像細(xì)節(jié)的高頻信號組成,所以頻率域圖像的銳化可以采用高通濾波器濾波,以加強(qiáng)圖像所需的高頻信號。
1.1.3 降采樣和插值
對圖片進(jìn)行一次降采樣,可以降低圖片的數(shù)據(jù)量,減少計算量,然后進(jìn)行插值恢復(fù),保持圖像關(guān)鍵信息的完整性??梢匀ピ霝V波,消除背景噪聲和預(yù)處理帶來的部分噪聲。
1.2 邊緣檢測
邊緣檢測是目標(biāo)識別的前提,也是整個算法流程中非常重要的一環(huán)。邊緣是指其周圍像素灰度急劇變化的那些像素集合,它是圖像最基本的特征。邊緣存在于目標(biāo)、背景和區(qū)域之間,所以,它是圖像分割的重要依據(jù)。有許多方法用于邊緣檢測,一般分為基于查找和基于零穿越兩類方法?;诓檎曳椒ㄍㄟ^尋找圖像一階導(dǎo)數(shù)中最大和最小值來檢測邊界,通常是將邊界定位在梯度最大的方向。
在邊緣檢測算法中,大多數(shù)情況下僅僅需要邊緣檢測器指出邊緣出現(xiàn)在圖像某一像素點附近,而沒有必要指出邊緣的精確位置或方向。本文只需要確定目標(biāo)輪廓,不需要具體位置信息,步驟如下:
1.2.1 圖像色彩通道提取
檢測算子操作的都是單通道灰度圖或二值圖,傳統(tǒng)做法是直接對源圖像進(jìn)行灰度化或者二值化處理,通過一定的閾值截斷數(shù)據(jù),這就丟失了不同色彩通道下的目標(biāo)信息。不同拍照環(huán)境下,目標(biāo)與背景的色彩區(qū)分度較大。比如目標(biāo)是黃色,而背景是藍(lán)色,綜合進(jìn)行二值化的結(jié)果是目標(biāo)與背景的邊界沒那么明顯。如果進(jìn)行色彩通道提取然后再處理,在一種色彩通道下,能很好地將目標(biāo)與背景分割開。
常見的圖片只涉及 RGB 三原色,所以本文做法是每次提取3種顏色的一種,然后再進(jìn)行邊緣檢測處理。
1.2.2 檢測算子選取
常見的邊緣檢測算子有Roberts Cross算子、 Prewitt算子、 Sobel算子、 Canny算子等。其中,Sobel算子和Canny算子效果較好。
Sobel算子是一階微分算子,它利用像素鄰近區(qū)域的梯度值來計算1個像素的梯度,然后根據(jù)一定的閾值來取舍。Sobel 算子是算子模板,它由兩個算子核構(gòu)成,一個核對垂直邊緣響應(yīng)最大,另一個核對水平邊緣響應(yīng)最大。2個卷積的最大值作為該點的輸出值。本文給出2個算子對同一圖像的邊緣檢測效果。
圖1 實物照片
從圖1-圖3可以看出,Canny算子對圖像的邊緣信息保留較好,出現(xiàn)的輪廓斷裂或缺失情況小,而Sobel算子檢測后的輪廓圖很模糊,邊緣信息丟失很厲害。本文檢測算子采用Canny算子。
1.2.3 閾值自適應(yīng)獲取
Canny使用了滯后閾值。滯后閾值需要兩個閾值——高閾值與低閾值。假設(shè)圖像中的重要邊緣都是連續(xù)曲線,這樣就可以跟蹤給定曲線中的模糊部分,避免將沒有組成曲線的噪聲像素當(dāng)成邊緣。從一個較大閾值開始,標(biāo)識出比較確信的真實邊緣,使用前面導(dǎo)出的方向信息,從這些真正的邊緣開始在圖像中跟蹤整個邊緣。跟蹤時本文使用一個較小閾值,這樣就可以跟蹤曲線的模糊部分直至回到起點。
圖2 Canny 算子效果圖3 Sobel 算子效果
設(shè)置閾值過高可能會漏掉重要信息;閾值過低,枝節(jié)信息又變得很重要,很難給出一個適用于所有圖像的通用閾值。傳統(tǒng)方法是讓用戶根據(jù)經(jīng)驗手動輸入兩個閾值,這不但麻煩,而且同樣的閾值對不同的圖片檢測效果不一樣,缺乏泛化能力。本文提出了基于類間距的自適應(yīng)閾值算法。該算法一般都能求出兩個高低閾值,如果自適應(yīng)獲取失敗,就采用最常用的經(jīng)驗值作為默認(rèn)值。
1.3 目標(biāo)識別
確定好目標(biāo)輪廓線后就可對目標(biāo)進(jìn)行識別處理。識別之前,還應(yīng)考慮實際情況對輪廓線進(jìn)一步篩選。實際應(yīng)用中目標(biāo)物的尺寸在整個圖片中屬于大物體,前面步驟處理后,一些類似的小物體也保留下來,而這些需要剔除。剔除方法是面積篩選法,只有當(dāng)閉合輪廓線面積滿足某個面積閾值時才被保留。這樣既排除了干擾,也加快了處理速度。
輪廓線由許多點組成,輪廓線保存的就是這些點,這些點存在著大量冗余。例如確定一個矩形,只需要4個點。對已經(jīng)保留下來的輪廓線進(jìn)行一次幾何曲線擬合,用一個只包含最少點的幾何曲線來表示原來的輪廓線,會大大降低數(shù)據(jù)量,減少存儲空間,同時也加快了后續(xù)處理速度。
擬合算法采用的是RamerDouglasPeucker algorithm (RDP)算法。該算法遞歸地從原始點集選取兩點作為線段,然后找離線段最遠(yuǎn)的點。如果這個點到線段的距離大于閾值就保留,否則剔除。閾值一般采用比較常用的經(jīng)驗值0.02。
目標(biāo)識別方法很多,圖像紋理特征、幾何特征、模式分類器都可以作為識別依據(jù),其中幾何特征法針對規(guī)則目標(biāo)的識別具有高效快捷、數(shù)據(jù)量小的優(yōu)點。因此,本文采用幾何特征法進(jìn)行識別。
一張包含參照物和目標(biāo)物的圖片經(jīng)過預(yù)處理、邊緣檢測、輪廓拾取等步驟,將參照物和目標(biāo)同時進(jìn)行識別,提高了處理效率。
采用了多通道的分別檢測識別方法,同一個目標(biāo)物會被多次識別,解決此問題的方法是去重:如果兩次識別的目標(biāo)物大小一樣,特定點(如中心或左頂角)的坐標(biāo)位置一樣,那么就認(rèn)為是同一物體,只保留一份即可。
1.3.1 參照物識別
(1)參照物選取。
參照物選取原則:①不能和待識別的矩形或立方體混淆干擾;②參照物自身應(yīng)當(dāng)易識別,且始終保持一致?;谏鲜隹紤],本文選擇圓(球)作為參照物。圓(球)的投影能保持很好的一致性。
(2)參照物幾何特性。
對于圓來說,它的幾何特性比較特殊,具有“1”的特性:任何小于1的幾何圖形都不是圓??紤]到實際情況,圖片的拍攝質(zhì)量、透視形變等原因,在實際識別過程中,閾值設(shè)置為0.8,當(dāng)大于這個值時就判定為圓。
圖片除了參照物的圓外還可能存在多個干擾圓,解決方法是確保參照物圓是所有圓里最大的一個。
1.3.2 平面目標(biāo)(矩形)識別
平面目標(biāo)識別主要是對一個照片里多個目標(biāo)物(矩形)進(jìn)行識別,這些矩形可以任意角度旋轉(zhuǎn),推薦最大個數(shù)不超過10個,否則會導(dǎo)致取景框裝不下,需要將拉長距縮小,導(dǎo)致識別和計算精度下降。
識別過程:
①判斷擬合曲線的頂點數(shù)是否為4;
②計算4個角的余弦值。 由于只知道4個頂點坐標(biāo),所以需要3個1組分別計算余弦值;
③篩選。 理想情況下,如果4個余弦值都為0,則代表目標(biāo)物是一個矩形??紤]到實際情況下圖片的拍攝質(zhì)量和透視變形,4個余弦值只會與 0 很接近。解決方法是求4個余弦值的最大值,然后判斷最大值是否小于閾值0.3。如果是,則目標(biāo)物是一個矩形;
④去重。 如果同一個目標(biāo)已被檢測,則以后直接跳過,不更新矩形集合;
⑤排序。經(jīng)過以上步驟,可以獲得一個矩形集合,但是這個集合里可能還有一些邊邊角角的干擾小矩形被收錄。這時可根據(jù)面積,對所有矩形進(jìn)行排序,把面積大的用戶感興趣的目標(biāo)列出來,其它的剔除或者跳過處理。
1.3.3 立體目標(biāo)(長方體)識別
對于立體目標(biāo),從一個角度拍最多只能看到3個面,透視變形現(xiàn)象較嚴(yán)重。正對著相機(jī)的2個面會變形拉伸為梯形,而頂部的一個面則直接變形為菱形?;谝陨峡紤],需將識別規(guī)則進(jìn)行修改:
(1)單個識別。一張圖片里只能保留一個立體目標(biāo)(長方體),且盡量居于圖片正中央,這樣可以減輕透視變形。
(2)判定擬合幾何曲線的頂點是否為4 ,透視現(xiàn)象導(dǎo)致矩形退化為一般的四邊形。
(3)去重。 同平面目標(biāo)一樣,立體目標(biāo)也會由于多通道提取檢測識別而出現(xiàn)多次檢測,解決方法也是及時去重,保留一份結(jié)果。
(4)排序定位 。經(jīng)過上述步驟識別出的目標(biāo),可能包含頂部已經(jīng)廢掉的菱形及其它四邊形,此時需要對這些四邊形進(jìn)行一個基于面積的排序,只取面積最大的和次最大的兩個,這就是本文后續(xù)計算尺寸需要的2個面。
1.4 透視矯正
物體成像過程是一個單點投影過程,該過程無可避免地產(chǎn)生了透視變形。透視變形最直接的效應(yīng)是遠(yuǎn)小近大、平行線相交。落腳到目標(biāo)物上,導(dǎo)致目標(biāo)的幾何形狀發(fā)生改變,或水平或豎直方向進(jìn)行了拉伸或縮小。如果僅僅為了識別出目標(biāo)物,則可通過一定算法將變形后的目標(biāo)識別出來,但是目標(biāo)在像素空間的尺寸已經(jīng)發(fā)生了改變;如果要進(jìn)一步計算目標(biāo)的實際尺寸,就必須對目標(biāo)進(jìn)行校正,才能保證結(jié)果的精確性。
目前國內(nèi)外對透視校正有一些研究,針對的是一些特定目標(biāo)的校正,復(fù)雜度高,缺乏通用性。例如袁國棟[9]的“逆向投影點繪制算法”、鄭全新[10]的“基于消失線的長方體表面透視變形校正方法”等,需要事先知道相機(jī)的內(nèi)部參數(shù)、拍攝時的距離角度等外部條件,計算過程復(fù)雜。苗立剛[11]的“基于形態(tài)學(xué)的文檔圖像透視校正算法”需要事先知道目標(biāo)物大小,如A4紙的尺寸。代秦[12]的 “基于改進(jìn)變換和透視變換的透視圖像矯正”則需要事先知道幾個不變的坐標(biāo),求出轉(zhuǎn)換矩陣,同樣不適合本文的研究目標(biāo)。
基于上述考慮,必須在便捷簡易和精度上折中,并且不可能有 100%的矯正效果。所以在拍攝之前,為了獲得更高的精度,拍照過程應(yīng)盡量減小透視變形。在平面目標(biāo)(矩形)模式下,物體變形不是很嚴(yán)重,本文采用最小包圍矩形來進(jìn)行校正。
在靠近相機(jī)的一端,目標(biāo)物幾乎沒有形變,可以這些像素點為基點,逐步向外擴(kuò)展,構(gòu)造一個可以最小包圍目標(biāo)物的外接矩形,這樣就可以將縮小的邊拉回到正常尺寸。為了提高計算效率,可以直接以這個外接矩形尺寸為準(zhǔn),省去將目標(biāo)物進(jìn)行校正拉伸的過程。
在平面目標(biāo)識別過程中,由于目標(biāo)可以旋轉(zhuǎn),所以這個最小包圍矩形不是水平的,而是根據(jù)目標(biāo)物最靠近相機(jī)的2條直線進(jìn)行逐步擴(kuò)展,構(gòu)造一個最小外接矩形。
在立體目標(biāo)識別模式下,由于觀察角度問題,立體物體的兩個面不能同時正對相機(jī),必會導(dǎo)致某個面透視變形嚴(yán)重。通過觀察圖像可知,正對相機(jī)的目標(biāo)高邊幾乎沒有形變,而目標(biāo)的寬邊和長邊則變形嚴(yán)重。
針對這種變形,本文采用余弦糾正法。首先計算形變的面靠近低端和水平線的夾角,然后以低端的那條邊和水平線構(gòu)成一個直角三角形。低端的那條邊可以根據(jù)形變面的頂點坐標(biāo)距離求得,然后根據(jù)余弦值,再反推出斜邊的長度,即為校正后的邊長。最后強(qiáng)調(diào)一點的是,在拍攝立體目標(biāo)圖片時,相機(jī)最好稍微仰視目標(biāo)拍照,這樣校正效果比較好。對于一些立體識別變形嚴(yán)重情況,推薦采用平面目標(biāo)識別,每次識別立體目標(biāo)的一個面,這樣可提高精度。
1.5 參照計算
經(jīng)過上述步驟處理,可以得到經(jīng)過校正的參照物和目標(biāo)物的像素空間尺寸。此時只需要進(jìn)行一個等比計算,即可獲得目標(biāo)尺寸。
2 實驗結(jié)果
目前,圖像處理比較流行和成熟的第三方庫是OpenCV[1314],它是一個開源的跨平臺計算機(jī)視覺庫,可以運行在Linux、Windows和Mac OS操作系統(tǒng)上。它是輕量級的,而且高效,由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,主要使用C/C++編程,同時提供了Python、Java 等語言接口,實現(xiàn)圖像處理和計算機(jī)視覺的很多通用算法。
OpenCV 提供了Point、Rect、Mat等基本數(shù)據(jù)結(jié)構(gòu),可以省去結(jié)構(gòu)設(shè)計和底層操作,開發(fā)程序時專注于問題域自身算法的設(shè)計和實現(xiàn),降低了實現(xiàn)復(fù)雜度,提高了靈活度。本文基于OpenCV 2加以實現(xiàn)。
為了設(shè)定核心算法和框架,便于優(yōu)化修改,本文先在PC端實現(xiàn)算法。圖像處理代碼實現(xiàn)注重效率和檢測效果,本文采用的是經(jīng)典的面向過程編程方法,對關(guān)鍵算法的函數(shù)實現(xiàn)進(jìn)行封裝和優(yōu)化。下面以立體目標(biāo)識別計算為例,介紹幾個核心函數(shù)的實現(xiàn)。
2.1 目標(biāo)物去重
多通道的反復(fù)檢測處理,對同一個目標(biāo)可能會多次檢測,但是只能保留一份,其它的需要排除掉。采用方法是基于位置和面積的判別。
2.2 自適應(yīng)法確定高低
采用OSTU算法實現(xiàn)一個自適應(yīng)算法。
2.3 目標(biāo)檢測識別
目標(biāo)檢測識別是較關(guān)鍵部分,綜合了很多其它算法過程。其中多通道提取算法可以用OpenCV的 mixChannels()函數(shù)實現(xiàn),邊緣搜索可以用 findContours()實現(xiàn)。實現(xiàn)過程中關(guān)鍵是算法的組合及庫函數(shù)的參數(shù)選取。
2.4 尺寸計算
識別過程中可能會收錄一些小尺寸目標(biāo),這些需要剔除。部分圖片是矩形,有時會錯誤地識別,這也需要剔除。剔除方法是如果目標(biāo)物尺寸跟圖片尺寸相仿,那么目標(biāo)其實是整個圖片,應(yīng)當(dāng)剔除。
在找到計算尺寸需要的目標(biāo)兩個面后,需要對每個面的 4 個頂點按縱坐標(biāo) y 為序進(jìn)行排序,再根據(jù)這4個點進(jìn)行余弦值求解以及實際邊長計算。
2.5 手動輔助
面對一些質(zhì)量很差的圖片,在自動的3D和2D都無法識別時,就需要引入人工干預(yù)。干預(yù)方法很簡單,用戶只需指定要識別的物體關(guān)鍵頂點即可。
本文在PC機(jī)上對一些核心算法進(jìn)行了優(yōu)化和改進(jìn),最終目標(biāo)是部署到Android平臺上運行。從一個平臺遷移到另一個平臺,需要考慮很多因素。其中,核心算法都是基于OpenCV庫,而OpenCV雖然提供Java接口,但Java接口是OpenCV2.3版本以后才有,穩(wěn)定性和提供的支持不夠完善。支持最好、效率最高的還是C/C++代碼,而Android系統(tǒng)的前端是Java語言,目前很成熟、靈活,平臺移植需要在不影響效率的情況下進(jìn)行。
采用Java的JNI接口機(jī)制(java native interface)。該機(jī)制提供了C/C++原生代碼和Java代碼的混合編程機(jī)制,與本文所需一致。 選好接口后,要考慮數(shù)據(jù)的傳遞。數(shù)據(jù)在不同模塊間傳遞,然后處理,數(shù)據(jù)結(jié)構(gòu)的選取也影響程序運行效率。 在Android前端,通過拍照或選圖,初始化一個位圖對象,然后將位圖的像素數(shù)據(jù)以數(shù)組形式通過JNI傳遞給后臺的C/C++模塊,C/C++模塊再以這個像素數(shù)組重構(gòu)出一個圖片的Mat對象,然后按照PC端的預(yù)處理、檢測、識別、校正等操作,將目標(biāo)尺寸以數(shù)組形式返回,在前端顯示。
為了便于后續(xù)功能拓展及更好地追蹤后臺模塊處理情況,在返回值數(shù)組加了一個小技巧,保證正常情況下可返回尺寸。如果出現(xiàn)異常,如參照物識別、目標(biāo)識別失敗等,會返回錯誤標(biāo)志及已經(jīng)成功完成的操作,這樣前端可以在了解錯誤原因的同時獲取已經(jīng)成功的操作,不必重復(fù)原來的過程,提高了效率。
3 結(jié)語
通過以上測試和結(jié)果分析,本文方法在大多數(shù)場景下
可以正確快捷地實現(xiàn)平面及立體目標(biāo)物的識別和尺寸計算(見圖4)。目標(biāo)尺寸的計算結(jié)果精確到小數(shù)點后4位,識別和計算過程簡捷,實現(xiàn)了開發(fā)簡便快捷手機(jī)端APP的目標(biāo)。
在預(yù)處理、檢測識別、校正等關(guān)鍵步驟中,本文算法優(yōu)化處理效果明顯。即使在使用 JNI 的接口機(jī)制下,手機(jī)移動端的響應(yīng)速度仍然較快。
參考文獻(xiàn):
[1] J R COZAR, N GUIL, E L ZAPATA.Detection of arbitrary planar shapes with 3D pose[M]. Elsevier Image and Vision Computing , 2001(19): 10571070 .
[2] DMITRY LAGUNOVSKY,SERGEY ABLAMEYKO. Fast line and rectangle detection by clustering and grouping[EB/OL].http://link.springer.com/chapter/10.1007%2F3540634606_156.
[3] ZI QIANG LI.Generalized hough transform:fast detection for hybrid multicircle and multirectangle[C].Proceedings of the 6th World Congress on Intelligent Control and Automation, Dalian,China,2006(6):2123.
[4] JUNG C R,SCHRAMM R. Rectangle detection based on a windowed hough transform[C].Computer Graphics and Image Processing, Proceedings, 2004.
[5] BAZIN J C,INSO KWEON,DEMONCEAUX, et al. Rectangle extraction in catadioptric images[C].Computer Vision, ICCV 2007, IEEE 11th International Conference,2007.
[6] GEETHA KIRAN ,MURALI.Automatic rectification of perspective distortion from a single image using plane homography[J]. International Journal on Computational Sciences & Applications (IJCSA), 2013(10):35.
[7] ZHENGYOU ZHANG. Weak perspective projection[Z].Microsoft Research, Redmond, WA, USA.
[8] DENNIS PARK,DEVA RAMANAN,CHARLESS FOWLKES.Multiresolution models for object detection[C].Lecture Notes in Computer Science,2010(6413):241254.
[9] 袁國棟, 秦開懷, 孫漢秋. 逆向投影點繪制算法[J]. 計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2005 (2):25142521.
[10] 鄭全新, 楊明強(qiáng), 李文輝. 基于消失線的長方體表面透視變形校正方法[J]. 計算機(jī)工程,2013(5):162169.
[11] 苗立剛. 基于形態(tài)學(xué)的文檔圖像透視校正算法[J]. 光電子激光,2009(10):112116.
[12] 代勤, 王延杰, 韓廣良. 基于改進(jìn)霍夫變換和透視變換的透視圖像矯正[J]. 中國液晶與顯示,2012(6):2629.
[13] GARY BRADSKI ,ADRIAN KAEBLER. Learning OpenCV [M]. 中文版.北京:清華大學(xué)出版社,2009.
[14] Nash.Automatic perspective correction for quadrilateral objects[EB/OL].http://opencvcode.com/tutorials/automaticperspectivecorrectionforquadrilateralobjects/.
(責(zé)任編輯:杜能鋼)