本發(fā)明涉及圖像處理的技術(shù)領(lǐng)域,具體地涉及書寫板檢測和校正。
背景技術(shù):
書寫板(例如白板、黑板等)經(jīng)常用于許多不同的設(shè)置(例如學(xué)院、公司、非營利機(jī)構(gòu)、住宅等)中??梢栽跁鴮懓迳喜贾梦谋尽D畫、圖表、圖形等,以在講座、訓(xùn)練、集體討論會議等期間傳達(dá)想法。為了以電子方式記住這些想法,可以拍攝書寫板的照片,并且進(jìn)行圖像處理(例如光學(xué)字符識別(ocr)),以從圖像中提取書寫板的內(nèi)容。
當(dāng)(例如使用具有攝像頭的智能電話)拍攝照片時,所得到的圖像可能包括書寫板外部的背景。此外,所得到的圖像也可能捕獲到具有透視失真(distortedperspective)的書寫板。背景和透視失真二者使圖像處理復(fù)雜化,并且不太可能成功地提取內(nèi)容。然而,用戶仍然希望通過拍攝書寫板來記住書寫板上的這些想法。
技術(shù)實現(xiàn)要素:
總體上,在一個方面,本發(fā)明涉及一種用于圖像處理的方法。該方法包括:獲得圖像,所述圖像包括書寫板和書寫板外部的背景;檢測圖像內(nèi)的多條線;基于多條線來確定圖像內(nèi)的書寫板的多個角;以及基于多個角通過對圖像應(yīng)用變換來校正書寫板的透視。
總體上,在一個方面,本發(fā)明涉及一種用于圖像處理的系統(tǒng)。該系統(tǒng)包括:用于存儲圖像的緩存器,所述圖像包括書寫板和書寫板外部的背景;用于檢測圖像內(nèi)的多條線的線處理器;用于基于多條線來確定圖像內(nèi)的書寫板的多個角的角檢測器;以及用于基于多個角通過對圖像應(yīng)用變換來校正書寫板的透視的校正引擎。
根據(jù)以下描述和所附權(quán)利要求,本發(fā)明的其他方面將變得明顯。
附圖說明
圖1示出了根據(jù)本發(fā)明的一個或更多個實施方式的系統(tǒng)。
圖2至圖4示出了根據(jù)本發(fā)明的一個或更多個實施方式的流程圖。
圖5a至圖5f示出了根據(jù)本發(fā)明的一個或更多個實施方式的實現(xiàn)示例。
圖6示出了根據(jù)本發(fā)明的一個或更多個實施方式的計算機(jī)系統(tǒng)。
具體實施方式
現(xiàn)在將參照附圖詳細(xì)描述本發(fā)明的具體實施方式。為了一致性,由相同的附圖標(biāo)記表示各個附圖中相同的元件。
在本發(fā)明的實施方式的下述的詳細(xì)描述中,陳述了許多具體細(xì)節(jié)以提供對本發(fā)明的更透徹的理解。然而,對本領(lǐng)域普通技術(shù)人員而言顯而易見的是,可以在沒有這些具體細(xì)節(jié)的情況下實施本發(fā)明。在其他實例中,沒有詳細(xì)描述公知特征以避免不必要地使描述復(fù)雜化。
總體上,本發(fā)明的實施方式提供了用于圖像處理的方法和系統(tǒng)。獲得包括書寫板和書寫板外部的背景的至少一部分的圖像。然后,檢測圖像內(nèi)的線(例如邊緣)。識別并移除位于圖像中的書寫板上的線和位于圖像的背景中的線(即,被排除在進(jìn)一步考慮之外)。一些剩余的線用于確定書寫板的角并計算用于偏移書寫板的透視失真的變換。當(dāng)通過對圖像應(yīng)用變換來校正書寫板的透視失真時,可以執(zhí)行附加的圖像處理(例如ocr),以提取書寫板的內(nèi)容。通過首先至少部分地校正書寫板中的書寫板的透視失真,后續(xù)的圖像處理(例如ocr)將會更有可能成功。
圖1示出了根據(jù)本發(fā)明的一個或更多個實施方式的系統(tǒng)(100)。如圖1所示,系統(tǒng)(100)具有多個部件(例如緩存器(104)、線處理器(114)、角檢測器(110)和校正引擎(108))。這些部件(104,108,110,114)中的每個部件可以位于同一計算裝置(例如個人計算機(jī)(pc)、膝上型計算機(jī)、平板pc、智能電話、服務(wù)器、大型機(jī)、線纜箱、信息亭等)上,或者可以位于不同計算裝置上,由具有有線和/或無線部段的任何拓?fù)湟约叭魏未笮〉木W(wǎng)絡(luò)連接所述不同計算裝置。
在本發(fā)明的一個或更多個實施方式中,系統(tǒng)(100)包括緩存器(104)。緩存器(104)可以在硬件(即電路系統(tǒng))、軟件或其任意組合中實現(xiàn)。緩存器(104)存儲圖像(106)。圖像(106)包括書寫板和背景。圖像(106)的背景實際上是圖像(106)的沒有被書寫板占據(jù)的任何區(qū)域。圖像(106)可以捕獲具有透視失真的書寫板??梢詮娜魏蝸碓传@得圖像(106)。例如,可以從智能電話(未示出)的數(shù)字?jǐn)z像頭獲得圖像(106)。作為另一示例,可以通過網(wǎng)絡(luò)(例如因特網(wǎng))(未示出)獲得圖像(106)。作為又一示例,可以從硬盤驅(qū)動器(未示出)獲得圖像(106)。圖像(106)可以是任何大小和任何分辨率。在本發(fā)明的一個或更多個實施方式中,緩存器(104)可以對圖像(106)進(jìn)行下采樣。特別地,如果圖像的分辨率超過預(yù)定閾值(例如圖像(106)處于高清晰度),則緩存器(104)可以對圖像(106)進(jìn)行下采樣。在其他部件(例如108,110,114)對圖像(106)進(jìn)行操作的同時,緩存器(104)可以存儲圖像(106)。
在本發(fā)明的一個或更多個實施方式中,系統(tǒng)(100)包括線處理器(114)。線處理器(114)可以在硬件(即電路系統(tǒng))、軟件或其任意組合中實現(xiàn)。線處理器(114)被配置成對圖像(106)執(zhí)行邊緣檢測。換言之,線處理器(114)被配置成對圖像(106)內(nèi)的線進(jìn)行檢測。例如,線處理器(114)可以利用canny算法和/或hough變換來檢測圖像(106)中的線。線處理器(114)還可以移除(即,被排除在進(jìn)一步考慮之外)不夠長的線(即,不超過長度閾值的線)。線處理器(114)還可以將每條線分類為更接近豎直還是更接近水平。
得益于該詳細(xì)描述,本領(lǐng)域技術(shù)人員將理解的是,一條或更多條檢測到的線可以位于圖像中的書寫板上,一條或更多條檢測到的線可以位于圖像中的書寫板外部的背景中,并且一條或更多條檢測到的線可以與圖像(106)中的書寫板的輪廓(例如邊界、周邊等)對應(yīng)。
在本發(fā)明的一個或更多個實施方式中,線處理器(114)識別并移除(即,被排除在進(jìn)一步考慮之外)位于圖像(106)中的書寫板上的線。得益于該詳細(xì)描述,本領(lǐng)域技術(shù)人員將理解的是,如果線在書寫板上,則有可能在線的兩側(cè)的像素可以具有相似的強(qiáng)度值。因此,線處理器(114)可以對線的兩側(cè)的像素的強(qiáng)度值進(jìn)行比較,以確定所選擇的線在書寫板上。該處理可以包括條帶(strip)的使用(下面討論)。
在本發(fā)明的一個或更多個實施方式中,線處理器(114)識別并移除(即,被排除在進(jìn)一步考慮之外)位于圖像的背景中的線。特別地,線處理器(114)可以計算所選擇的線上的多個采樣點,并且生成從參考點(例如圖像的中心)到每個采樣點的鏈接。如果鏈接在到達(dá)采樣點之前與其他線相交,則可以確定所選擇的線位于圖像(106)的背景中(下面討論)。
在一個或更多個實施方式中,系統(tǒng)(100)包括角檢測器(110)。角檢測器(110)可以在硬件(即電路系統(tǒng))、軟件或其任意組合中實現(xiàn)。角檢測器(110)被配置成確定圖像(106)中的書寫板的角。這可以包括:基于從圖像中心的法線取向,將剩余線劃分割成四個簇。在每個簇內(nèi),可以基于各種因素對線分等級,所述因素包括至圖像(106)中心的接近度和長度??梢曰诘燃墎磉x擇四條線(每條來自四個簇中的每個簇),并且然后計算四條線的交叉點(即,相交點)。假設(shè)所計算的交叉點不違反四邊形原則(下面討論),則將四個交叉點視為圖像(106)中的書寫板的角。
在本發(fā)明的一個或更多個實施方式中,系統(tǒng)(100)包括校正引擎(108)。校正引擎(108)可以在硬件(即電路系統(tǒng))、軟件或其任意組合中實現(xiàn)。校正引擎(108)被配置成基于所計算的相交點和四條線之間的距離來計算變換(下面討論)。校正引擎(108)還被配置成將變換應(yīng)用于圖像(106),以偏移(即,至少部分地校正)圖像(106)中的書寫板的透視失真(下面討論)。得益于該詳細(xì)描述,本領(lǐng)域技術(shù)人員將理解的是,通過偏移透視失真,應(yīng)用于圖像(106)的任何附加處理(例如ocr)在提取圖像(106)中的書寫板的內(nèi)容方面將會更有可能成功。
雖然圖1示出了系統(tǒng)(100)具有四個部件(104,108,110,114),但是在其他實施方式中,系統(tǒng)(100)可以具有更多或更少的部件。例如,系統(tǒng)(100)可以包括具有數(shù)字?jǐn)z像頭的智能電話以捕獲圖像(106)。作為另一示例,系統(tǒng)(100)可以包括附加引擎,以對圖像(106)執(zhí)行附加處理(例如ocr)來提取圖像(106)中的書寫板的內(nèi)容。
圖2示出了根據(jù)本發(fā)明的一個或更多個實施方式的流程圖。該流程圖描繪了用于圖像處理的處理。圖2中的步驟的一個或更多個可以由上面參照圖1所討論的系統(tǒng)(100)的部件來執(zhí)行。在本發(fā)明的一個或更多個實施方式中,可以省略、重復(fù)以及/或者以與圖2所示順序不同的順序來執(zhí)行圖2所示步驟的一個或更多個。因此,本發(fā)明的范圍不應(yīng)被認(rèn)為限于圖2所示步驟的具體布置。
首先,獲得圖像(步驟205)??梢詮臄?shù)字相機(jī)獲得圖像。可以從服務(wù)器下載圖像。圖像可以包括書寫板(例如白板、黑板等)。書寫板可以占據(jù)圖像的中心。圖像還可以包括在書寫板外部的背景。背景可以出現(xiàn)在書寫板的四個側(cè)邊的一些側(cè)邊或所有側(cè)邊。
在步驟210中,可以對圖像進(jìn)行下采樣以增強(qiáng)邊緣的線性度。得益于該詳細(xì)描述,本領(lǐng)域技術(shù)人員應(yīng)理解,步驟210可以是可選的。
在步驟215中,在圖像中對線進(jìn)行檢測??梢酝ㄟ^應(yīng)用線檢測算法來對線進(jìn)行檢測。例如,可以通過對圖像應(yīng)用canny算法和/或hough變換來對圖像的線進(jìn)行檢測。還可以應(yīng)用用于線檢測的其他算法??梢砸瞥怀^長度閾值的任何檢測到的線(即,短線)(即,被排除在進(jìn)一步考慮之外)。
得益于該詳細(xì)描述,本領(lǐng)域技術(shù)人員應(yīng)理解,一條或更多條檢測到的線可以位于圖像中的書寫板上,一條或更多條檢測到的線可以位于圖像中的書寫板外部的背景中,并且一條或更多條檢測到的線可以與書寫板的邊界對應(yīng)。
在步驟220中,識別并移除位于圖像中的書寫板上的線(即,被排除在進(jìn)一步考慮之外)。例如可以在圖3和圖5c中找到關(guān)于步驟220的額外細(xì)節(jié)。
在步驟225中,識別并移除位于圖像的背景上的線(即,被排除在進(jìn)一步考慮之外)。例如可以在圖4和圖5d中找到關(guān)于步驟225的額外細(xì)節(jié)。
在步驟230中,基于從圖像中心的法線取向,將剩余線劃分成四個簇。在每個簇內(nèi),可以對線分等級。例如,可以根據(jù)至圖像中心的接近度和/或長度來對線分等級。僅具有一條線的簇是可能的。
在步驟235中,從四個簇中的每個簇中選擇一條線,得到四條線組。選擇可以是隨機(jī)的。換言之,可以從每個簇中隨機(jī)選擇一條線。另外地或可替選地,可以基于簇中的線的等級來從每個簇中選擇線。例如,可以從每個簇中選擇最高等級的線。作為另一示例,可以從每個簇中選擇最低等級的線。
在步驟240中,計算四條線的交叉點(即,相交點)。得益于該詳細(xì)描述,本領(lǐng)域技術(shù)人員應(yīng)理解,計算四條線的交叉點可以包括延伸四條線的一條或更多條,直到它們與其他線相交為止。同樣得益于該詳細(xì)描述,本領(lǐng)域技術(shù)人員應(yīng)理解,存在四個交叉點,并且可以用坐標(biāo)表示每個交叉點。
在步驟245中,確定所計算的交叉點是否違反四邊形原則。如果所計算的交叉點的一個或更多個位于靠近線段的中心(即,在預(yù)定距離內(nèi)),則違反四邊形原則。另外地或可替選地,如果線中的兩個交叉點在線的一側(cè)上,則違反四邊形原則。以不同的方式描述,如上所述,為了計算交叉點,線可以沿兩個方向延伸(沿方向a延伸,沿方向b延伸),以與其他線相交。如果線中的兩個交叉點處于線的同一延伸(即,都處于沿方向a延伸或者都處于沿方向b延伸),則違反四邊形原則。在確定所計算的交叉點不違反四邊形原則的情況下,處理行進(jìn)至步驟250。交叉點被認(rèn)為是圖像中書寫板的四個角。然而,在確定所計算的交叉點確實違反四邊形原則的情況下,處理返回到步驟235,其中,用來自同一簇的不同線來替換該線組的至少一條線。
在步驟250中,基于四條線之間的距離和交叉點來計算變換。例如,假設(shè)w是四條線組中的一條豎直線的中點與另一條豎直線的中點之間的距離。此外,假設(shè)h是四條線組中的一條水平線的中點與另一條水平線的中點之間的距離。變換可以是用于將交叉點的坐標(biāo)映射到下述坐標(biāo)的仿射變換:(0,0)、(w,0)、(0,h)和(w,h)。得益于該詳細(xì)描述,本領(lǐng)域技術(shù)人員應(yīng)理解,w/h用作縱橫比。
在步驟255中,通過對圖像應(yīng)用變換來至少部分地校正透視失真。在應(yīng)用變換之后,對圖像執(zhí)行任何處理(例如ocr)以提取圖像中的書寫板的內(nèi)容將更有可能成功(步驟260)。得益于該詳細(xì)描述,本領(lǐng)域技術(shù)人員應(yīng)理解,步驟260是可選的。
圖3示出了根據(jù)本發(fā)明的一個或更多個實施方式的流程圖。該流程圖描繪了用于識別位于圖像中的書寫板上的線的處理。圖3中的步驟的一個或更多個可以由上面參照圖1所討論的系統(tǒng)(100)的部件來執(zhí)行。在本發(fā)明的一個或更多個實施方式中,可以省略、重復(fù)以及/或者以與圖3所示順序不同的順序來執(zhí)行圖3所示步驟的一個或更多個。因此,本發(fā)明的范圍不應(yīng)被認(rèn)為限于圖3所示步驟的具體布置。此外,圖3所示的處理可以對應(yīng)于上面參照圖2所討論的步驟220。
首先,選擇圖像中的檢測到的線中的一條線(步驟305)??梢詮乃袡z測到的線中隨機(jī)選擇線。另外或可替代地,可以因為線是最長的線、線是最短的線,線最靠近圖像的中心、線離圖像的中心最遠(yuǎn)等而對其進(jìn)行選擇。
在步驟310中,針對該線生成多個條帶。如果線被分類為豎直,則條帶是水平的。如果線被分類為水平,則條帶是豎直的。條帶從線的一側(cè)跨越到線的另一側(cè)。每個條帶包括來自線的每側(cè)的多個像素(例如2、3、10等)。例如,如果線被分類為豎直,則每個條帶是水平的,并且可以包括來自線的左側(cè)的3個像素和來自線的右側(cè)的3個像素。作為另一示例,如果線被分類為水平,則每個條帶是豎直的,并且可以包括在線的下方的3個像素和在線的上方的3個像素。
在步驟315中,針對每個條帶識別線的兩側(cè)的像素的強(qiáng)度值。對于給定的條帶,可以針對線的每側(cè)對這些強(qiáng)度值進(jìn)行排序。例如,在水平條帶中,線的左側(cè)的像素的強(qiáng)度值可以在它們自己之中進(jìn)行排序,以及線的右側(cè)的像素的強(qiáng)度值可以在它們自己之中進(jìn)行排序。
在步驟320中,針對線的兩側(cè)來逐條帶地計算統(tǒng)計強(qiáng)度值。例如,統(tǒng)計強(qiáng)度值可以與位于條帶中的線的一側(cè)的像素中的平均強(qiáng)度值或中值強(qiáng)度值對應(yīng)。另外或可替代地,統(tǒng)計強(qiáng)度值可以與位于條帶中的線的一側(cè)的像素的40%強(qiáng)度值(i40)和60%強(qiáng)度值(i60)對應(yīng)。
在步驟325中,識別均勻強(qiáng)度條帶(uis)。uis是其中線的一側(cè)的統(tǒng)計強(qiáng)度值與線的另一側(cè)的統(tǒng)計強(qiáng)度值匹配(即,相等或近似相等)的條帶。例如,在水平條帶的情況下,如果線的左側(cè)的像素的i40值和i60值分別與線的右側(cè)的像素的i40值和i60值匹配,則條帶被認(rèn)為是uis。作為另一示例,在豎直條帶的情況下,如果條帶中線的上方的像素的中值強(qiáng)度值與條帶中的線的下方的像素的中值強(qiáng)度值匹配,則條帶被認(rèn)為是uis。
在步驟330中,確定所識別的uis的數(shù)量(即,所識別的uis的基數(shù))是否超過閾值。例如,閾值可以是所選擇的線的所有條帶的1/3。在確定所識別的uis的數(shù)量超過閾值的情況下,該線被認(rèn)為是位于圖像中的書寫板上(步驟335)。然而,在uis的數(shù)量沒有超過閾值的情況下,線被認(rèn)為是沒有位于圖像中的書寫板上(步驟340)。
得益于該詳細(xì)描述,本領(lǐng)域技術(shù)人員應(yīng)理解,可以針對圖像中的尚未被移除(即,被排除在進(jìn)一步考慮之外)的每條檢測到的線來重復(fù)圖3所描繪的處理。換言之,可以多次重復(fù)圖3所描繪的處理。
圖4示出了根據(jù)本發(fā)明的一個或更多個實施方式的流程圖。該流程圖描繪了用于識別位于圖像中的書寫板外部的背景中的線的處理。圖4中的步驟的一個或更多個可以由上面參照圖1所討論的系統(tǒng)(100)的部件來執(zhí)行。在本發(fā)明的一個或更多個實施方式中,可以省略、重復(fù)以及/或者以與圖4所示順序不同的順序來執(zhí)行圖4所示步驟的一個或更多個。因此,本發(fā)明的范圍不應(yīng)被認(rèn)為限于圖4所示步驟的具體布置。此外,圖4所示的處理可以對應(yīng)于上面參照圖2所討論的步驟225。
首先,選擇圖像中的檢測到的線中的一條線(步驟405)??梢詮乃袡z測到的線中隨機(jī)選擇線。另外或可替代地,可以因為該線是最長的線、是最短的線,最靠近圖像的中心、離圖像的中心最遠(yuǎn)等而對其進(jìn)行選擇。
在步驟410中,針對所選擇的線計算多個采樣點。在一個或更多個實施方式中,采樣點的數(shù)量基于線的長度。如果所選擇的線的長度為l,則在所選擇的線上以l/10間隔(或l/2間隔、l/4間隔、l/5間隔、l/8間隔、l/16間隔等)來布置采樣點。另外或可替代地,可以在不管所選擇的線的長度如何的情況下下使用固定數(shù)量的采樣點??梢匝刂x擇的線以隨機(jī)距離來間隔開采樣點。另外或可替代地,采樣點僅被布置在所選擇的線的末端。
在步驟415中,生成從參考點到所選擇的線上的采樣點的鏈接。鏈接本身實際上是線段。參考點可以對應(yīng)于圖像的中心。另外或可替代地,參考點可以接近圖像的中心(例如位于包括圖像中心的小區(qū)域中)。
在步驟420中,識別與其他線的鏈接相交點。鏈接相交點實際上是在鏈接到達(dá)所選擇的鏈接的采樣點之前鏈接與另一條線的相交點。一些鏈接可以沒有鏈接相交點。單個鏈接可以具有多個鏈接相交點。
在步驟425中,確定鏈接相交點的總數(shù)(即,所有鏈接的從參考點到所選擇的線的鏈接相交點)是否超過閾值(例如1、5、6、10、11等)。在確定鏈接相交點的總數(shù)超過閾值的情況下,所選擇的線被認(rèn)為位于圖像中的書寫板外部的背景中(步驟430)。在確定鏈接相交點的總數(shù)未超過閾值的情況下,所選擇的線不被認(rèn)為位于背景中(步驟435)。
得益于該詳細(xì)描述,本領(lǐng)域技術(shù)人員應(yīng)理解,可以針對圖像中的未被移除(即,被排除在進(jìn)一步考慮之外)的每條檢測到的線來重復(fù)圖4所描繪的處理。換言之,可以多次重復(fù)圖4所描繪的處理。
圖5a至圖5f示出了根據(jù)本發(fā)明的一個或更多個實施方式的實現(xiàn)示例。如圖5a所示,存在具有白板(508)的圖像(506)。圖像(506)中的白板(508)的透視失真。對圖像(506)執(zhí)行ocr或其他類型的圖像處理將可能產(chǎn)生差的結(jié)果。換言之,由于透視失真,圖像處理可能從圖像(506)中不能正確地提取白板(508)的內(nèi)容。
圖5b示出了線檢測之后的圖像(510)。如圖5b所示,檢測到的線包括:位于白板(508)上的線、對應(yīng)于白板(508)的輪廓(例如周邊、邊界)的線以及位于白板(508)外部的背景中的線。
圖5c示出了檢測到的線中的一條線(514)和生成的多個條帶(即,條帶a(516a)、條帶c(516c)、條帶e(516e))。由于線(514)近似豎直,所以所生成的條帶是水平的并且從線(514)的左側(cè)伸展(run)到線(514)的右側(cè)。每個條帶(516a、516c、516e)包括位于線(514)的左側(cè)的像素(512)和位于線(514)的右側(cè)的像素??紤]條帶c(516c)??梢葬槍€(514)的左側(cè)的條帶c(516c)的像素來計算一個或更多個統(tǒng)計強(qiáng)度值(例如i40、i60)??梢葬槍€(514)的右側(cè)的條帶c(516c)的像素來計算一個或更多個統(tǒng)計強(qiáng)度值(例如i40、i60)。如果來自線(514)的兩側(cè)的統(tǒng)計強(qiáng)度值匹配,則條帶c(516c)被認(rèn)為是均勻強(qiáng)度條帶。如果所有條帶(516a、516c、516e等)的至少三分之一是均勻強(qiáng)度條帶,則線(514)被認(rèn)為位于圖像中的白板(508)上。
圖5d示出了檢測到的線(524)和接近圖像中心的參考點(520)。還如圖5d所示,針對檢測到的線(524)來計算多個采樣點(522)。生成從參考點(520)到采樣點(522)的多個鏈接(525)。存在位于參考點(520)與檢測到的線(524)之間的其他檢測到的線(即,另一條線a(526)、另一條線b(528))。因此,一些鏈接與其他線(526,528)相交。在鏈接相交點的數(shù)量超過閾值(例如5)的情況下,檢測到的線(524)被認(rèn)為位于圖像中的白板(508)外部的背景中。
圖5e示出了多個簇(即,簇a(530a)、簇b(530b)、簇c(530c)和簇d(530d))。簇(530a,530b,530c,530d)包括針對水平線(530b,530d)的兩個簇和針對豎直線(530a,530c)的兩個簇。在每個簇(530a,530b,530c,530d)內(nèi),可以根據(jù)長度、距圖像中心的距離等來對線分等級。通過從每個簇(530a,530b,530c,530d)中選擇一條線來形成四條線組。
圖5f示出了四條線組的交叉點的計算。由于交叉點不違反四邊形原則,所以這些交叉點被認(rèn)為是圖像中的白板(508)的角。因此,可以基于交叉點的坐標(biāo)和四條線之間的距離(w,h)來計算仿射變換??梢詫⒃撟儞Q應(yīng)用于圖像,以至少部分地校正書寫板的透視失真。在應(yīng)用變換之后,圖像更適于附加圖像處理(例如ocr),以提取白板(508)的內(nèi)容。
本發(fā)明的一個或更多個實施方式可以具有下述優(yōu)點:至少部分地校正圖像中的書寫板的透視失真的能力;識別并且移除位于圖像中的書寫板上的線的能力;識別并移除位于圖像中的書寫板外部的背景中的線的能力;基于鏈接相交點來確定線位于背景中的能力;使用統(tǒng)計強(qiáng)度值和均勻強(qiáng)度條帶來確定線位于書寫板上的能力;等。
不管所使用的平臺如何,本發(fā)明的實施方式實際上可以在任何類型的計算系統(tǒng)上實現(xiàn)。例如,計算系統(tǒng)可以是一個或更多個移動裝置(例如膝上型計算機(jī)、智能電話、個人數(shù)字助理、平板計算機(jī)或其他移動裝置)、臺式計算機(jī)、服務(wù)器、服務(wù)器機(jī)箱中的刀片或任何其他類型的計算裝置或者至少包括最小處理電源、存儲器以及一個或多個輸入裝置和輸出裝置以執(zhí)行本發(fā)明的一個或更多個實施方式的裝置。例如,如圖6所示,計算系統(tǒng)(600)可以包括一個或更多個計算機(jī)處理器(602)、關(guān)聯(lián)的存儲器(604)(例如隨機(jī)存取存儲器(ram)、高速緩存存儲器、閃存等)、一個或更多個存儲裝置606(例如硬盤、光盤驅(qū)動器如高密度磁盤(cd)驅(qū)動器或數(shù)字通用盤(dvd)驅(qū)動器、閃存棒等)以及許多其他元件和功能。一個或更多個計算機(jī)處理器(602)可以是用于處理指令的集成電路。例如,一個或更多個計算機(jī)處理器可以是處理器的一個或更多個內(nèi)核或微內(nèi)核。計算系統(tǒng)(600)還可以包括一個或更多個輸入裝置(610),如觸摸屏、鍵盤、鼠標(biāo)、麥克風(fēng)、觸摸板、電子筆或任何其他類型的輸入裝置。此外,計算系統(tǒng)(600)可以包括一個或更多個輸出裝置(608),如屏幕(例如液晶顯示器(lcd)、等離子體顯示器、觸摸屏、陰極射線管(crt)監(jiān)測器,投影儀或其他顯示裝置)、打印機(jī)、外部存儲器或任何其他輸出裝置。一個或更多個輸出裝置可以與一個或更多個輸入裝置相同或不同。計算系統(tǒng)(600)可以經(jīng)由網(wǎng)絡(luò)接口連接(未示出)連接到網(wǎng)絡(luò)(612)(例如局域網(wǎng)(lan)、廣域網(wǎng)(wan)如因特網(wǎng)、移動網(wǎng)絡(luò)或任何其他類型的網(wǎng)絡(luò))。一個或更多個輸入裝置和輸出裝置可以本地或遠(yuǎn)程(例如經(jīng)由網(wǎng)絡(luò)(612))連接到一個或更多個計算機(jī)處理器(602)、存儲器(604)和一個或更多個存儲裝置(606)。存在許多不同類型的計算系統(tǒng),而且前述的一個或更多個輸入裝置和輸出裝置可以采取其他形式。
采用執(zhí)行本發(fā)明的實施方式的計算機(jī)可讀程序代碼形式的軟件指令可以被全部或部分地、臨時或永久地存儲在非暫態(tài)計算機(jī)可讀介質(zhì)上,非暫態(tài)計算機(jī)可讀介質(zhì)如cd、dvd、存儲裝置、軟磁盤、磁帶、閃存、物理存儲器或任何其他計算機(jī)可讀存儲介質(zhì)。特別地,軟件指令可以與以下計算機(jī)可讀程序代碼對應(yīng),當(dāng)由一個或更多個處理器執(zhí)行所述計算機(jī)可讀程序代碼時,其被配置成執(zhí)行本發(fā)明的實施方式。
此外,前述計算系統(tǒng)(600)的一個或更多個元件可以位于遠(yuǎn)程位置處,并且通過網(wǎng)絡(luò)(612)連接到其他元件。此外,本發(fā)明的一個或更多個實施方式可以在具有多個節(jié)點的分布式系統(tǒng)上實現(xiàn),其中,本發(fā)明的每個部分可以位于分布式系統(tǒng)內(nèi)的不同節(jié)點上。在本發(fā)明的一個實施方式中,節(jié)點與不同的計算裝置對應(yīng)??商娲兀?jié)點可以與具有相關(guān)聯(lián)的物理存儲器的計算機(jī)處理器對應(yīng)。節(jié)點可以可替代地對應(yīng)于計算機(jī)處理器或具有共享存儲器和/或資源的計算機(jī)處理器的微內(nèi)核。
雖然已關(guān)于有限數(shù)量的實施方式描述了本發(fā)明,但是得益于本公開內(nèi)容,本領(lǐng)域技術(shù)人員應(yīng)理解,可以設(shè)計出不脫離文中所公開的本發(fā)明的范圍的其他實施方式。因此,本發(fā)明的范圍應(yīng)僅由所附權(quán)利要求限制。