專利名稱:對(duì)二值圖像進(jìn)行平滑的方法、設(shè)備和存儲(chǔ)介質(zhì)的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)總體上涉及圖像處理,尤其涉及用于平滑二值圖像的方法、設(shè)備和存儲(chǔ)介質(zhì)。
背景技術(shù):
存在許多平滑二值圖像的技術(shù)。這些技術(shù)通??梢苑譃槿N類型模板匹配,線性內(nèi)插以及向量化(vectorization)。
對(duì)于模板匹配,研究顯示其需要大量的固定大小的模板。這意味著需要存儲(chǔ)大量的固定大小的模板,并對(duì)每一個(gè)像素搜索陣列中的所有模板。這種搜索會(huì)花費(fèi)很多時(shí)間。
對(duì)于線性內(nèi)插,一般而言,其需要沿著被檢測(cè)的行將所有的值加起來(lái)。這意味著,根據(jù)檢測(cè)距離,其需要進(jìn)行若干加法,并需要進(jìn)行一些乘法和除法。當(dāng)然,還要考慮檢測(cè)方向的問題。即使這種方法可以滿足效率方面的要求,該方法卻忽略了來(lái)自相鄰元素的影響。因?yàn)檫@些原因,該方法不是一種好的方法。
至于向量化方法,該方法要計(jì)算和存儲(chǔ)向量的方向。因此,它必定比線性內(nèi)插更為復(fù)雜。因此該方法也在考慮范圍之外。
因此,希望有一種新的平滑技術(shù),其能夠改善平滑效果,提高處理速度。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的就是提供這樣一種技術(shù)。
在本發(fā)明中,關(guān)鍵技術(shù)是邏輯模板的使用。本發(fā)明將固定大小的模板轉(zhuǎn)換為一系列邏輯描述。這種方法是模板匹配和線性內(nèi)插的混合。本發(fā)明考慮了來(lái)自相鄰元素的影響(就如模板匹配方法一樣),并具有靈活的檢測(cè)距離(這是線性內(nèi)插方法的優(yōu)勢(shì))。
在本發(fā)明的一個(gè)方面,用于平滑二值圖像的方法包括下述步驟檢測(cè)構(gòu)成可能的缺口的像素;將每一個(gè)可能的缺口及其周圍的像素與多個(gè)模板進(jìn)行比較,以確定該可能的缺口是不是真實(shí)缺口或者獨(dú)立噪聲;通過改變真實(shí)缺口和獨(dú)立噪聲的像素的值來(lái)消除所述真實(shí)缺口和獨(dú)立噪聲。
在一個(gè)優(yōu)選實(shí)施例中,所述比較步驟是用一種邏輯算法實(shí)現(xiàn)的,其包括將所述多個(gè)模板用不同優(yōu)先級(jí)的條件的一個(gè)最簡(jiǎn)化的集合表示;根據(jù)所述條件的所述優(yōu)先級(jí),比較各條件與所述可能的缺口周圍的對(duì)應(yīng)像素,如果存在不被滿足的條件,則跳過當(dāng)前的可能缺口;如果所述簡(jiǎn)化集合的條件得到滿足,則將該可能缺口判定為真實(shí)的缺口。
在本發(fā)明的另一方面,提供了一種用于平滑二值圖像的設(shè)備,包括用于檢測(cè)構(gòu)成可能缺口的像素的檢測(cè)裝置;用于將每一個(gè)可能缺口及其周圍的像素與多個(gè)模板進(jìn)行比較,以判斷所述可能缺口是否真正缺口或者獨(dú)立噪聲的裝置;以及,通過改變真正缺口和獨(dú)立噪聲的像素的值來(lái)消除真正缺口和獨(dú)立噪聲的消除裝置。
在一個(gè)優(yōu)選實(shí)施例中,所述識(shí)別裝置包括存儲(chǔ)裝置,用于存儲(chǔ)代表所述多個(gè)模板的,具有不同優(yōu)先級(jí)的條件的最簡(jiǎn)化集合;以及比較裝置,用于根據(jù)所述條件的所述優(yōu)先級(jí),比較各條件與所述可能的缺口周圍的對(duì)應(yīng)像素,如果存在不被滿足的條件,則跳過當(dāng)前的可能缺口;如果所述簡(jiǎn)化集合的條件得到滿足,則將該可能缺口判定為真實(shí)的缺口。
本發(fā)明還提供了還提供了一種存儲(chǔ)介質(zhì),其特征在于,在其中存儲(chǔ)了用于實(shí)現(xiàn)上述方法的程序代碼。
本發(fā)明的其它目的、特征和優(yōu)點(diǎn)將在閱讀下文對(duì)優(yōu)選實(shí)施例的詳細(xì)說明后變得更為清楚。附圖作為說明書的一部分用于圖解本發(fā)明的實(shí)施例,并和說明書一起用于解釋本發(fā)明的原理。在附圖中
圖1是一個(gè)像素模板陣列,圖示了在7×7的區(qū)域中所有像素的編號(hào)順序,以及用來(lái)判斷是否應(yīng)當(dāng)處理一個(gè)像素的最為典型的L形像素組;圖2是一個(gè)像素模板陣列,圖示了在7×7的區(qū)域中所有像素的編號(hào)順序,以及用來(lái)判斷是否應(yīng)當(dāng)處理一個(gè)像素的最為典型的T形像素組;圖3到25是用在本發(fā)明的第一實(shí)施例中的模板;圖26到31的流程示了本發(fā)明第一實(shí)施例的檢測(cè)步驟的詳細(xì)流程;圖32到40的流程示了本發(fā)明第一實(shí)施例的比較步驟和消除步驟的詳細(xì)流程;圖41是圖示存儲(chǔ)空間變換處理的示意圖;圖42是可以用來(lái)實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)系統(tǒng)的一個(gè)例子的框圖;圖43是一個(gè)像素模板陣列,其圖示了在8×8陣列中像素的編號(hào);圖44到51圖示了在本發(fā)明的第二實(shí)施例中,用于填充缺口的8個(gè)模板;圖52到54圖示了在本發(fā)明的第二實(shí)施例中,用于消除凸起的3個(gè)模板;圖55圖示了對(duì)應(yīng)于圖44到51的邏輯算法;圖56圖示了對(duì)應(yīng)于圖52到54的邏輯算法。
具體實(shí)施例方式
計(jì)算機(jī)系統(tǒng)舉例本發(fā)明的方法和設(shè)備可以在任何信息處理設(shè)備中實(shí)現(xiàn)。所述信息處理設(shè)備例如是個(gè)人計(jì)算機(jī)(PC)、筆記本電腦、嵌入掃描儀、復(fù)印機(jī)、傳真機(jī)等的單片機(jī)(SCM),等等。對(duì)于本領(lǐng)域普通技術(shù)人員,很容易通過軟件、硬件和/或固件實(shí)現(xiàn)本發(fā)明的方法和設(shè)備。尤其應(yīng)注意到,對(duì)于本領(lǐng)域普通技術(shù)人員顯而易見的是,為了執(zhí)行本方法的任何步驟或者步驟的組合,或者本發(fā)明的設(shè)備的任何部件或者部件的組合,可能需要使用輸入輸出設(shè)備、存儲(chǔ)設(shè)備以及微處理器比如CPU等。在下面對(duì)本發(fā)明的方法和設(shè)備的說明中不見得提到這些設(shè)備,但實(shí)際上使用了這些設(shè)備。
作為上述信息處理設(shè)備,圖42的框圖示出了一個(gè)計(jì)算機(jī)系統(tǒng)的舉例,在其中可以實(shí)現(xiàn)本發(fā)明的方法和設(shè)備。應(yīng)注意的是,示于圖42的計(jì)算機(jī)系統(tǒng)只是用于說明,并非要限制本發(fā)明的范圍。
從硬件的角度來(lái)講,計(jì)算機(jī)1包括一個(gè)CPU 6、一個(gè)硬盤(HD)5、一個(gè)RAM 7、一個(gè)ROM 8和輸入輸出設(shè)備12。輸入輸出設(shè)備可以包括輸入裝置比如鍵盤、觸控板、跟蹤球和鼠標(biāo)等,輸出裝置比如打印機(jī)和監(jiān)視器,以及輸入輸出裝置比如軟盤驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器和通信端口。
從軟件的角度講,所述計(jì)算機(jī)主要包括操作系統(tǒng)(OS)9、輸入輸出驅(qū)動(dòng)程序11和各種應(yīng)用程序10。作為操作系統(tǒng),可以使用市場(chǎng)上可購(gòu)買的任何操作系統(tǒng),比如Windows系列以及基于Linux的操作系統(tǒng)。輸入輸出驅(qū)動(dòng)程序分別用于驅(qū)動(dòng)所述輸入輸出設(shè)備。所述應(yīng)用程序可以是任何應(yīng)用程序,比如文本處理程序、圖像處理程序等,其中包括可以用在本發(fā)明中的以及專為本發(fā)明編制的、可調(diào)用所述已有程序的應(yīng)用程序。
這樣,在本發(fā)明中,可以由操作系統(tǒng)、應(yīng)用程序和輸入輸出驅(qū)動(dòng)程序在所述計(jì)算機(jī)的硬件中實(shí)現(xiàn)本發(fā)明的方法和設(shè)備。
另外,計(jì)算機(jī)1可以連接到數(shù)字裝置3和應(yīng)用設(shè)備2。數(shù)字裝置可以用作圖像源,可以是照相機(jī)、攝像機(jī)、掃描儀或者用于將模擬圖像轉(zhuǎn)換為數(shù)字圖像的數(shù)字化儀。本發(fā)明的設(shè)備和方法獲得的結(jié)果被輸出到應(yīng)用設(shè)備2,后者根據(jù)所述結(jié)果,執(zhí)行適當(dāng)?shù)牟僮?。該?yīng)用設(shè)備也可以實(shí)現(xiàn)為在計(jì)算機(jī)1中實(shí)現(xiàn)的另一個(gè)應(yīng)用(與硬件相結(jié)合),用于進(jìn)一步處理所述圖像。
用于平滑二值圖像的方法和設(shè)備簡(jiǎn)言之,本發(fā)明提供了一種計(jì)算機(jī)實(shí)現(xiàn)的用于平滑二值圖像的方法和設(shè)備。
本發(fā)明的設(shè)備包括用于檢測(cè)構(gòu)成可能缺口的像素的檢測(cè)裝置;用于將每一個(gè)可能缺口及其周圍的像素與多個(gè)模板進(jìn)行比較,以判斷所述可能缺口是否真正缺口或者獨(dú)立噪聲的裝置;以及,通過改變真正缺口和獨(dú)立噪聲的像素的值來(lái)消除真正缺口和獨(dú)立噪聲的消除裝置。
取決于圖像質(zhì)量和要達(dá)到的平滑效果,判斷什么是噪聲的標(biāo)準(zhǔn)會(huì)發(fā)生變化。例如,對(duì)于高質(zhì)量的圖像,只有背景上的單個(gè)前景像素,或者單個(gè)像素大小的缺口或者凸起,才被視為要消除或者平滑的噪聲。如果圖像的質(zhì)量差,則噪聲(包括缺口或者凸起)的大小可以調(diào)整到2個(gè)像素,如此等等。如果噪聲的大小是兩個(gè)或者多個(gè)像素,則可以將像素的連通性考慮在內(nèi)。
在本說明書中,“獨(dú)立噪聲”的意思是其值與周圍像素不同的島狀的像素,“缺口”和“凸起”的意思是在背景和前景的邊界上的、其值與在該邊界的方向上在其兩側(cè)的像素不同的像素。顯然,“缺口”和“凸起”是兩個(gè)相反的概念。如果將背景和前景反轉(zhuǎn),則缺口會(huì)變成凸起,凸起會(huì)變成缺口。例如,在圖2中,如果前景是黑色的,則第1號(hào)像素是凸起;但是,如果前景是白色的,則第1號(hào)像素是一個(gè)缺口。因此,在下面的說明中,除非另行明確說明,“缺口”一詞是指“獨(dú)立噪聲”、“缺口”或者“凸起”。
(第一實(shí)施例)在第一實(shí)施例中,缺口的大小是一個(gè)像素。
在該實(shí)施例中,所述檢測(cè)裝置被配置為在每一個(gè)像素行中檢測(cè)被值不同的像素夾在中間的單個(gè)像素。例如,可以將具有這樣的配置的模板沿著每一個(gè)像素行移動(dòng),以篩選出可能的單像素缺口/凸起。同樣,模板的大小取決于圖像的質(zhì)量和要達(dá)到的平滑效果。
作為所述檢測(cè)裝置的一種變型,其可以包括掃描裝置,用于以預(yù)定大小的像素組為單位,掃描圖像的每一個(gè)行的像素,并且所述判斷裝置被配置為如果一個(gè)組中像素不是同一個(gè)值,則將該組中的像素視為可能缺口的像素;如果一個(gè)組中的像素為同一值,并且該組與具有不同值的一個(gè)或者多個(gè)像素相鄰,則所述一個(gè)或者多個(gè)像素被視為可能缺口的像素。
由于上述變型按組處理像素,處理速度可以提高很多。所述組可以是任何數(shù)量的像素,但是最好是一個(gè)或者多個(gè)字節(jié),以利于設(shè)備的CPU的處理。
圖26到31圖示了由所述檢測(cè)裝置執(zhí)行的檢測(cè)處理的一個(gè)具體的例子。其中,由掃描裝置以字節(jié)為單位掃描像素行(圖26中的步驟S1,S2,S8,S22和S24,圖27中的步驟S606,圖28中的步驟S1006,圖29中的步驟S1020,圖30中的步驟S1208,以及圖31中的步驟S18)。對(duì)于每一字節(jié),所述判斷裝置判斷所述字節(jié)是否全白(步驟S2)或者全黑(S12),如果是,則一般而言,所述字節(jié)不需要處理(步驟S8和S18),但是除了步驟S4,S6,S10和S14,S16,S20所示的某些特殊情形之外。也就是,如果與該字節(jié)的末尾相鄰的像素(步驟S4、S6以及步驟S14、S16),和/或者與該字節(jié)的首部相鄰的像素(步驟S10和步驟S20的“是”分支),與該字節(jié)的值不同,則所述像素是可能缺口(見圖27、28和29)。如果一個(gè)字節(jié)不是全白也不是全黑,則其中的所有像素都是應(yīng)當(dāng)被處理的可能缺口(步驟S12的“否”分支,并見圖30)。
下一個(gè)步驟是用識(shí)別裝置從可能缺口中識(shí)別真正的缺口(或者凸起)。為了便于描述,凸1和2圖示了在一個(gè)7×7陣列中的像素的編號(hào)。在本說明書的表1-1到1-4以及圖32到圖40中,其中的等式左邊的數(shù)字為圖1和圖2所示的像素編號(hào),等式右邊的數(shù)字是相應(yīng)像素的值(1或者0)。另外,在下面的說明書和圖1到25中,可能缺口的像素位于各圖的中心(第1號(hào)像素)。
直觀地看,如果一個(gè)像素以及相關(guān)的周圍像素構(gòu)成一個(gè)特定的模板,比如圖3所示者,則該像素會(huì)被視為一個(gè)可能缺口。傳統(tǒng)上,使用固定大小的模板來(lái)消除缺口,而固定大小的模板具有如上所述的缺點(diǎn)。也就是,如果模板太小,比如3×3,則平滑效果會(huì)太強(qiáng)。但是如果模板太大,比如7×7,平滑效果又太弱,因?yàn)槟0甯采w了太多的像素,而平滑操作只應(yīng)當(dāng)對(duì)前景和背景之間的邊界進(jìn)行。因此,提出過使用多個(gè)模板,這些多個(gè)模板與目標(biāo)像素區(qū)逐一比較。這樣的方法會(huì)消耗大量的計(jì)算資源。
因此,在本發(fā)明的優(yōu)選實(shí)施方式中,提出了執(zhí)行一種邏輯模板匹配。
首先,設(shè)計(jì)多個(gè)模板。例如,在本實(shí)施例中,為了消除單像素缺口/凸起,填充缺口(前景為黑色)的條件如下1.可能像素在邊緣方向被值不同的四個(gè)像素夾在中間,并且該可能像素和至少其它3個(gè)值相同的像素構(gòu)成如圖1所示的L形或者如圖2所示的T形。顯然,圖1中的L形有一個(gè)鏡像,并且L形及其鏡像均可以旋轉(zhuǎn)到四個(gè)方向(上、下、左、右),因此共有8種情況。對(duì)于圖2中的T形,因?yàn)門形可以旋轉(zhuǎn)到四種方向,因此有四種情況。在圖3到圖23所示的具體例子中,只涉及三種情況圖2所示的情形,圖1所示的情形,以及圖1所示情形的鏡像。
2.如圖3到5、10到12和17到19所示,如果可能像素與三個(gè)值相反的像素構(gòu)成一個(gè)倒T形,則該可能像素是真正缺口。另外,如圖6到9、14到17和20到23所示,如果所述倒T形的水平筆畫的一個(gè)端點(diǎn)像素與該可能像素的值相同,則僅當(dāng)該T形的水平筆畫被擴(kuò)展至少一個(gè)像素的情況下,該可能缺口才能被視為一個(gè)真正缺口。類似地,可以構(gòu)建模板來(lái)刪除凸起。如果前景是黑色的,則,作為一個(gè)例子,可以使用如圖24和25所示的模板。又例如,如果一個(gè)圖像中的前景和背景是平衡的,換句話說,如果難以分辨哪一種顏色是背景哪一種顏色是前景,則可以使用反轉(zhuǎn)圖3到23所示的模板所得到的模板。
注意,盡管圖3到圖25分別圖示了7×7像素的陣列,但是實(shí)際使用的模板并不是7×7。在圖3到25中,陰影部分的像素是無(wú)關(guān)像素。也就是說,模板僅由圖3到25中的白像素和黑像素構(gòu)成。
如果按照傳統(tǒng)的模板匹配技術(shù),則每一個(gè)可能像素要與上述每一個(gè)模板進(jìn)行比較,這很耗費(fèi)時(shí)間和計(jì)算能力在本發(fā)明的優(yōu)選實(shí)施方式中,用一個(gè)邏輯條件的最簡(jiǎn)化集合來(lái)表示所述模板。
具體來(lái)說,上述模板可以用下述條件來(lái)分別表示表1-1
表1-2
表1-3
表1-4
圖3到23的條件可以被化簡(jiǎn)為第1級(jí)1=1第2級(jí)2,4,6=0,1,0第3級(jí)8=0第4級(jí)28|11=0 OR 11|19=0 OR 19|40=0第5級(jí)(9,7=0,0 and(3&5=1 or 12&3=1 or 5&18=1))OR((9,7=0,1或1,0)and 3&5=1 and(12&3=1 or 5&18=1))
在上述最簡(jiǎn)條件集合中,上面的條件優(yōu)先于下面的條件,共有五個(gè)優(yōu)先級(jí)。對(duì)應(yīng)地,可能像素周圍的像素的重要程度是不同的。根據(jù)該最簡(jiǎn)集合和條件的優(yōu)先級(jí),可以設(shè)計(jì)如圖32加上圖33所示的邏輯算法。因此,所述識(shí)別裝置可以包括存儲(chǔ)裝置,用于存儲(chǔ)代表所述多個(gè)模板的,具有不同優(yōu)先級(jí)的條件的最簡(jiǎn)化集合;以及比較裝置,用于根據(jù)所述條件的所述優(yōu)先級(jí),比較各條件與所述可能的缺口周圍的對(duì)應(yīng)像素,如果存在不被滿足的條件,則跳過當(dāng)前的可能缺口;如果所述簡(jiǎn)化集合的條件得到滿足,則將該可能缺口判定為真實(shí)的缺口。
類似地,圖32加上圖37圖示了對(duì)應(yīng)于圖24和25的邏輯算法。
類似地,圖34到36和圖38到40圖示了通過將圖3到25所示的模板旋轉(zhuǎn)到其它三個(gè)方向所獲得的情況。
在圖33到40的最后的步驟中,改變?nèi)笨诘闹?,從而將缺口填?或者將凸起消除)。
(第二實(shí)施例)在第二實(shí)施例中,缺口/凸起的大小是兩個(gè)像素。
從第一實(shí)施例我們知道,本發(fā)明的關(guān)鍵是用不同優(yōu)先級(jí)的條件的最簡(jiǎn)化集合來(lái)概括各種模板,也就是可能像素周圍的像素具有不同的重要性。
顯然,大小為兩個(gè)像素的缺口與大小為單個(gè)像素的缺口沒有本質(zhì)的不同。不同之處在于,由于缺口的大小更大,模塊可能需要相應(yīng)地?cái)U(kuò)大。例如,對(duì)于沿著前景和背景之間的邊界方向的兩個(gè)像素的缺口(此后稱為水平缺口),T形或者L形的較短筆畫需要加寬一個(gè)像素,較長(zhǎng)筆畫需要相應(yīng)加長(zhǎng)。因此,例如,在第一實(shí)施例的第1和第2點(diǎn)中提到的參數(shù)需要相應(yīng)增大。
在這種情況下,當(dāng)搜索可能缺口時(shí),類似于第一實(shí)施例,使用典型的游程長(zhǎng)度方法,也就是檢測(cè)像素行中的黑白像素對(duì)。在此例中,首先檢測(cè)W-B-B-W(白黑黑白),然后判斷可能缺口是否真正缺口。
對(duì)于閱讀了本說明書的本領(lǐng)域普通技術(shù)人員來(lái)說,很容易設(shè)計(jì)各種模板,用邏輯條件來(lái)表示這些模板,并進(jìn)一步對(duì)所述邏輯條件化簡(jiǎn)。
類似于第一實(shí)施例,根據(jù)最簡(jiǎn)條件集中的條件的優(yōu)先級(jí)來(lái)檢測(cè)環(huán)繞可能缺口的相關(guān)像素,一旦集合中有條件不被滿足,則算法跳出,轉(zhuǎn)到下一個(gè)可能缺口。這樣,可以大大提高處理速度。
在第一實(shí)施例中,模板的設(shè)計(jì)遵循特定的標(biāo)準(zhǔn)。在實(shí)踐中,模板的選擇可以基于要被平滑的圖像類型的統(tǒng)計(jì)數(shù)據(jù)。也就是說,根據(jù)要被處理的圖像的屬性,某些像素分布可能意味著存在需要填充的缺口或者需要消除的凸起。
圖43到56圖解了用于消除兩個(gè)像素大小的缺口和凸起的模板的例子,以及相應(yīng)的流程圖。
為了便于描述,圖43圖示了8×8陣列中的像素的編號(hào)。在本說明書的表2-1到2-3以及圖55到圖56中,其中的等式左邊的數(shù)字為圖43所示的像素編號(hào),等式右邊的數(shù)字是相應(yīng)像素的值(1或者0)。另外,在下面的說明書和圖44到54中,可能缺口的像素位于第1號(hào)和第6號(hào)像素。
圖44到51圖示了用于填充缺口的8個(gè)模板,圖52到54圖示了用于消除凸起的三個(gè)模板。注意,盡管圖44到圖54分別圖示了8×8像素的陣列,但是實(shí)際使用的模板并不是8×8。在圖44到54中,陰影部分的像素是無(wú)關(guān)像素。也就是說,模板僅由圖44到54中的白像素和黑像素構(gòu)成。
具體地,上述模板可以分別用下述條件表示
表2-1
表2-2
表2-3
圖44到51的條件可以被化簡(jiǎn)為第1級(jí)1,6=1,1 && 2,19=0,0第2級(jí)9,8,7,20=0,0,0,0第3級(jí)4,5=1,1第4級(jí)(3,18=1,0 && 11,28=0,0 && 12,29=1,1)OR(3,18=0,1&& 40,R3=0,0 && 39,R2=1,1);OR3,18=1,1 and 12,39=1,1 and 11,40=0,0 and(29=1 or R2=1);OR3,18=1,1 and 12,39=1,1 and(11,40=1,0 OR 11,40=0,1);OR3,18=1,1 and((39,R2=1,1 && 40,R3=0,0) OR(12,29=1,1 &&11,28=0,0))在上述最簡(jiǎn)條件集合中,上面的條件優(yōu)先于下面的條件,共有四個(gè)優(yōu)先級(jí)。對(duì)應(yīng)地,可能像素周圍的像素的重要程度是不同的。根據(jù)該最簡(jiǎn)集合和條件的優(yōu)先級(jí),可以設(shè)計(jì)如圖55所示的邏輯算法。因此,所述識(shí)別裝置可以包括存儲(chǔ)裝置,用于存儲(chǔ)代表所述多個(gè)模板的,具有不同優(yōu)先級(jí)的條件的最簡(jiǎn)化集合;以及比較裝置,用于根據(jù)所述條件的所述優(yōu)先級(jí),比較各條件與所述可能的缺口周圍的對(duì)應(yīng)像素,如果存在不被滿足的條件,則跳過當(dāng)前的可能缺口;如果所述簡(jiǎn)化集合的條件得到滿足,則將該可能缺口判定為真實(shí)的缺口。
類似地,圖56圖示了對(duì)應(yīng)于圖52到54的邏輯算法。
在圖55和圖56的最后步驟中,改變?nèi)笨诘闹?,從而填充該缺?或者消除凸起)。
(第三實(shí)施例)為了提高本方法和設(shè)備的速度,降低內(nèi)存消耗,本發(fā)明進(jìn)一步提供了一種進(jìn)行預(yù)處理的新穎的方法和裝置。具體地,本發(fā)明提供了第一轉(zhuǎn)換裝置,用于對(duì)要探測(cè)的行在上述探測(cè)步驟之前進(jìn)行預(yù)處理。
具體地,在一個(gè)二值圖像中,一個(gè)像素對(duì)應(yīng)于內(nèi)存中的一個(gè)比特。值“0”代表黑像素,值“1”代表白像素。如第一和第二實(shí)施例中所述,當(dāng)探測(cè)可能缺口時(shí),本發(fā)明需要檢測(cè)每一個(gè)像素,也就是需要對(duì)比特進(jìn)行操作。然而,如我們所知,在目前的任何信息設(shè)備中,信息都是用字節(jié)表示的。這個(gè)問題會(huì)極大地降低處理速度,增大內(nèi)存消耗。
為了解決這個(gè)問題,如圖41所示,發(fā)明人提出來(lái)用轉(zhuǎn)換裝置將每一個(gè)比特?cái)U(kuò)展為一個(gè)字節(jié)。如圖41所示,如果一個(gè)行包括N個(gè)像素,也就是N個(gè)比特,則將該行擴(kuò)展為N個(gè)字節(jié)。對(duì)于白色的第n個(gè)像素(n=1,2,3……N)(也就是,對(duì)于為“1”的第n個(gè)比特),第n個(gè)字節(jié)的第((n-1)mod 8)+1)個(gè)比特被設(shè)置為1,這些N個(gè)字節(jié)的其它比特都被設(shè)置為0。然后,可以對(duì)這N個(gè)字節(jié)進(jìn)行所述檢測(cè)操作和比較操作,因?yàn)橹淮嬖趦煞N字節(jié)零字節(jié)和非零字節(jié)。采用該轉(zhuǎn)換裝置的好處是簡(jiǎn)化了檢測(cè)操作和比較操作,因?yàn)椴僮魇侵苯釉谧止?jié)上進(jìn)行的,而不是對(duì)比特進(jìn)行操作。當(dāng)恢復(fù)像素行時(shí),本發(fā)明提供了第二轉(zhuǎn)換裝置,對(duì)每8個(gè)轉(zhuǎn)換字節(jié)進(jìn)行OR操作,就可以恢復(fù)像素行的一個(gè)相應(yīng)字節(jié)。
(其它實(shí)施例)可以看到,第一實(shí)施例涉及平滑單個(gè)像素大小的缺口,第二實(shí)施例涉及平滑兩個(gè)像素大小的缺口,并且兩個(gè)像素是水平布置的(平行于前景和背景之間的邊緣或者邊界的方向)。本領(lǐng)域的普通技術(shù)人員可以想到,所述兩個(gè)像素可以在豎直方向,或者在傾斜方向。
如果兩個(gè)像素在豎直方向,那么顯而易見,在圖1和圖2中,T形和L形的豎直筆畫要延伸一個(gè)像素,并應(yīng)當(dāng)相應(yīng)地調(diào)整相關(guān)的周圍像素。同樣,本領(lǐng)域的普通技術(shù)人員閱讀了本說明書后能夠容易地設(shè)計(jì)和/或選擇模板,并化簡(jiǎn)條件集。
在傾斜方向的兩個(gè)像素意味著這兩個(gè)像素是八連通但不是四連通的。對(duì)于這種情況,在本說明書的啟發(fā)之下,本領(lǐng)域的普通技術(shù)人員也可以設(shè)計(jì)出新的模板,并化簡(jiǎn)條件集。
如果必要,要填充的缺口的大小可以放大到3個(gè)或者更多個(gè)像素,其基本原理與本說明書中是一樣的,并在本發(fā)明的保護(hù)范圍之內(nèi)。
另外,盡管在這里的實(shí)施例中,分別描述了單像素的情形和兩個(gè)像素的情形,但是在實(shí)踐中,可以同時(shí)檢測(cè)和填充兩種缺口(以及其它種類的缺口),只需要將各化簡(jiǎn)條件集合并起來(lái),并進(jìn)一步化簡(jiǎn)所得到的并集即可。
存儲(chǔ)介質(zhì)本發(fā)明的所述目的還可以通過在如上所述的可以與所述圖像源和后續(xù)處理設(shè)備通信的任何信息處理設(shè)備上運(yùn)行一個(gè)程序或者一組程序來(lái)實(shí)現(xiàn)。所述信息處理設(shè)備、圖像源和后續(xù)處理設(shè)備為公知的通用設(shè)備。因此,本發(fā)明的所述目的也可以僅僅通過提供實(shí)現(xiàn)所述方法或者設(shè)備的程序代碼來(lái)實(shí)現(xiàn)。也就是說,存儲(chǔ)有實(shí)現(xiàn)所述方法或者設(shè)備的程序代碼的存儲(chǔ)介質(zhì)構(gòu)成本發(fā)明。
對(duì)于本領(lǐng)域技術(shù)人員來(lái)說,可以輕易地用任何程序語(yǔ)言編程實(shí)現(xiàn)所述方法。因此,在此省略了對(duì)所述程序代碼的詳細(xì)描述。
顯然,所述存儲(chǔ)介質(zhì)可以是本領(lǐng)域技術(shù)人員已知的,或者將來(lái)所開發(fā)出來(lái)的任何類型的存儲(chǔ)介質(zhì),因此也沒有必要在此對(duì)各種存儲(chǔ)介質(zhì)一一列舉。
盡管結(jié)合具體步驟和結(jié)構(gòu)描述了本發(fā)明,但是本發(fā)明不局限于這里所描述的細(xì)節(jié)。本申請(qǐng)應(yīng)當(dāng)覆蓋所有不偏離本發(fā)明的精神和范圍的變化、修改和變型。
權(quán)利要求
1.用于平滑二值圖像的方法,包括下述步驟檢測(cè)構(gòu)成可能的缺口的像素;將每一個(gè)可能的缺口及其周圍的像素與多個(gè)模板進(jìn)行比較,以確定該可能的缺口是不是真實(shí)缺口或者獨(dú)立噪聲;通過改變真實(shí)缺口和獨(dú)立噪聲的像素的值來(lái)消除所述真實(shí)缺口和獨(dú)立噪聲。
2.如權(quán)利要求1所述的方法,其中,所述檢測(cè)步驟包括檢測(cè)每一個(gè)像素行中的一個(gè)或者多個(gè)具有相同值、被不同值的像素夾在中間的連通像素,其數(shù)量取決于要達(dá)到的平滑效果和/或圖像質(zhì)量。
3.如權(quán)利要求1所述的方法,其中,所述檢測(cè)步驟包括將圖像的像素行劃分為具有相同大小的多個(gè)組;掃描每一個(gè)組,如果一個(gè)組中的像素不是同一個(gè)值,則該組中的像素被視為可能缺口的像素,或者,如果具有相同值的一組像素與具有不同值的一個(gè)或者多個(gè)像素相鄰,則所述一個(gè)或者多個(gè)像素被視為可能缺口的像素。
4.如權(quán)利要求1到3之一所述的方法,其中,所述比較步驟是用一種邏輯算法實(shí)現(xiàn)的,其包括將所述多個(gè)模板用不同優(yōu)先級(jí)的條件的一個(gè)最簡(jiǎn)化的集合來(lái)表示;根據(jù)所述條件的所述優(yōu)先級(jí),比較各條件與所述可能的缺口周圍的對(duì)應(yīng)像素,如果存在不被滿足的條件,則跳過當(dāng)前的可能缺口;如果所述簡(jiǎn)化集合的條件得到滿足,則將該可能缺口判定為真實(shí)的缺口。
5.如權(quán)利要求4所述的方法,還包括在所述檢測(cè)步驟之前的第一轉(zhuǎn)換步驟,用于將包含N個(gè)像素的待處理行轉(zhuǎn)換為N個(gè)字節(jié),其中對(duì)于白色的第n個(gè)像素,其中n=1,2,...N,將第n個(gè)字節(jié)的第((n-1)mod 8)+1)個(gè)比特設(shè)為“1”,將其它比特設(shè)為“0”,其它步驟針對(duì)所述N個(gè)字節(jié)執(zhí)行;在所述消除步驟之后的第二轉(zhuǎn)換步驟,通過對(duì)處理后的N個(gè)字節(jié)進(jìn)行“或”操作,將處理后的N個(gè)字節(jié)轉(zhuǎn)換為N個(gè)像素的像素行。
6.如權(quán)利要求1到3之一所述的方法,還包括在所述檢測(cè)步驟之前的第一轉(zhuǎn)換步驟,用于將包含N個(gè)像素的待處理行轉(zhuǎn)換為N個(gè)字節(jié),其中對(duì)于白色的第n個(gè)像素,其中n=1,2,...N,將第n個(gè)字節(jié)的第((n-1)mod 8)+1)個(gè)比特設(shè)為“1”,將其它比特設(shè)為“0”,其它步驟針對(duì)所述N個(gè)字節(jié)執(zhí)行;在所述消除步驟之后的第二轉(zhuǎn)換步驟,通過對(duì)處理后的N個(gè)字節(jié)進(jìn)行“或”操作,將處理后的N個(gè)字節(jié)轉(zhuǎn)換為N個(gè)像素的像素行。
7.一種用于平滑二值圖像的設(shè)備,包括用于檢測(cè)構(gòu)成可能缺口的像素的檢測(cè)裝置;用于將每一個(gè)可能缺口及其周圍的像素與多個(gè)模板進(jìn)行比較,以判斷所述可能缺口是否真正缺口或者獨(dú)立噪聲的識(shí)別裝置;以及,通過改變真正缺口和獨(dú)立噪聲的像素的值來(lái)消除真正缺口和獨(dú)立噪聲的消除裝置。
8.如權(quán)利要求7所述的設(shè)備,其中,所述檢測(cè)裝置包括檢測(cè)每一個(gè)像素行中的一個(gè)或者多個(gè)具有相同值、被不同值的像素夾在中間的連通像素,其數(shù)量取決于要達(dá)到的平滑效果和/或圖像質(zhì)量。
9.如權(quán)利要求7所述的設(shè)備,其中,所述檢測(cè)裝置包括掃描裝置,用于以預(yù)定大小的像素組為單位掃描圖像的每一行的像素;以及判斷裝置,被配置為如果一個(gè)組中的像素不是同一個(gè)值,則該組中的像素被視為可能缺口的像素,或者,如果具有相同值的一組像素與具有不同值的一個(gè)或者多個(gè)像素相鄰,則所述一個(gè)或者多個(gè)像素被視為可能缺口的像素。
10.如權(quán)利要求7到9之一所述的設(shè)備,其中,所述識(shí)別裝置包括存儲(chǔ)裝置,用于存儲(chǔ)代表所述多個(gè)模板的,具有不同優(yōu)先級(jí)的條件的最簡(jiǎn)化集合;以及比較裝置,用于根據(jù)所述條件的所述優(yōu)先級(jí),比較各條件與所述可能的缺口周圍的對(duì)應(yīng)像素,如果存在不被滿足的條件,則跳過當(dāng)前的可能缺口;如果所述簡(jiǎn)化集合的條件得到滿足,則將該可能缺口判定為真實(shí)的缺口。
11.如權(quán)利要求4所述的設(shè)備,還包括第一轉(zhuǎn)換裝置,用于將包含N個(gè)像素的待處理行轉(zhuǎn)換為N個(gè)字節(jié),其中對(duì)于白色的第n個(gè)像素,其中n=1,2,...N,將第n個(gè)字節(jié)的第((n-1)mod 8)+1)個(gè)比特設(shè)為“1”,將其它比特設(shè)為“0”,其它裝置針對(duì)所述N個(gè)字節(jié)進(jìn)行操作;第二轉(zhuǎn)換裝置,通過對(duì)處理后的N個(gè)字節(jié)進(jìn)行“或”操作,將處理后的N個(gè)字節(jié)轉(zhuǎn)換為N個(gè)像素的像素行。
12.如權(quán)利要求7到9之一所述的設(shè)備,還包括第一轉(zhuǎn)換裝置,用于將包含N個(gè)像素的待處理行轉(zhuǎn)換為N個(gè)字節(jié),其中對(duì)于白色的第n個(gè)像素,其中n=1,2,...N,將第n個(gè)字節(jié)的第((n-1)mod 8)+1)個(gè)比特設(shè)為“1”,將其它比特設(shè)為“0”,其它裝置針對(duì)所述N個(gè)字節(jié)進(jìn)行操作;第二轉(zhuǎn)換裝置,通過對(duì)處理后的N個(gè)字節(jié)進(jìn)行“或”操作,將處理后的N個(gè)字節(jié)轉(zhuǎn)換為N個(gè)像素的像素行。
13.一種存儲(chǔ)介質(zhì),其特征在于,在其中存儲(chǔ)了用于實(shí)現(xiàn)如權(quán)利要求1到6之一所述的方法的程序代碼。
全文摘要
本申請(qǐng)涉及對(duì)二值圖像進(jìn)行平滑的方法、設(shè)備和存儲(chǔ)介質(zhì)。該方法包括下述步驟檢測(cè)構(gòu)成可能的缺口的像素;將每一個(gè)可能的缺口及其周圍的像素與多個(gè)模板進(jìn)行比較,以確定該可能的缺口是不是真實(shí)缺口或者獨(dú)立噪聲;通過改變真實(shí)缺口和獨(dú)立噪聲的像素的值來(lái)消除所述真實(shí)缺口和獨(dú)立噪聲。在一個(gè)優(yōu)選實(shí)施例中,用邏輯算法而不是單個(gè)的固定大小的模板來(lái)實(shí)現(xiàn)所述多個(gè)模板,使得可以大大改善平滑效果和處理速度。
文檔編號(hào)G06T5/00GK1848178SQ20051006518
公開日2006年10月18日 申請(qǐng)日期2005年4月13日 優(yōu)先權(quán)日2005年4月13日
發(fā)明者趙洪生, 劉家強(qiáng), 王艷清 申請(qǐng)人:佳能株式會(huì)社