圖像細化

圖像細化

圖像細化(Image Thinning),一般指二值圖像的骨架化(Image Skeletonization) 的一種操作運算。 細化是將圖像的線條從多像素寬度減少到單位像素寬度過程的簡稱,一些文章經常將細化結果描述為“骨架化”、“中軸轉換”和“對稱軸轉換”。

國內外發展及套用現狀

細化是將圖像的線條從多像素寬度減少到單位像素寬度過程的簡稱,一些文章經常將細化結果描述為“骨架化”、“中軸轉換”和“對稱軸轉換”。在電腦技術發展的早期,人們就意識到用計算機進行圖像識別的可能,隨之激發了大量的圖像數據壓縮的方法,從它的初期開始,就有發表近300篇關於這個課題的各種方面的論文,其最主要的方法就是減少圖像的像素數,之後細化方法被廣泛研究與套用。很多細化算法的學者對細化概念做了定義,將骨架定義為從圖像線條的內部傳播的波陣面的結果,骨架就是對邊波陣面交集的軌跡,它作為一個概括性的理論被大多數學者所接受,圖像中最外層的像素被連續的移除直到剩下骨架像素,但同時要保證骨架的連通性。其中有學者將骨架定義為圖像線條的中心,使用這個骨架化定義可以精確地重建最初始的圖像和重新描繪出它們。因為細化是模式識別領域的主要任務或本質要求之一,所以細化或骨架化算法的設計是一個非常活躍的研究領域。

20年前,自從這種方法第一次被提出,細化就成了模式識別領域的重要處理步驟之一。它已經被用作檢查印刷電路板,染色體分析,對地裂縫圖的檢查和對指紋的分類。它最初套用在光學字元識別中,近年來主要套用在智慧型複印和傳真傳送系統中,另外一個套用和發展是在地圖數據壓縮中。總的來說,這些應用程式使用細化方法將數字圖像的線條簡化為單位像素寬度的中心線,使對象能夠被更簡單的數據結構表示來簡化數據分析,或者減少數據存儲和對傳輸設備的要求。基本上細化的所有目的為減少冗餘信息,留下足夠的有用信息來進行拓撲分析、形狀分析或者原始對象的還原。對於本來就是線狀圖形的對象,細化方法允許骨架的大小、形狀和表面噪聲幾乎與原圖像保持一致。在這種情況下,細化的目的是改善圖像,而不僅僅是消極的進行數據壓縮。在模式識別中細化的重要性是顯而易見的,它的重要性被過去的40年中的大量的細化算法所反映出來。算法的大規模發展支撐了這個觀點,到現在為止,細化算法還沒有被充分的發展和完善,未來它將比剛開始出現滿足一般細化要求時更複雜。設計一個連續細化算法的大部分困難在於必須要充分考慮到圖像的總體性質,人們都知道,連通性是一個全局屬性,這是計算速度問題的根源。雖然發現並保留骨架線的端點只是個局部問題,但定位它們也是一個全局問題。除此之外,判斷線上的一個像素點是不是毛刺噪聲,它該被保留還是刪除,這是非常重要的。不同算法對這個問題的解決方法是不同的,有些方法可能導致整個分支的刪除或者將噪聲細化。所以如何在改善細化質量的同時,用最少的疊代次數得到完全細化的圖像並且縮短細化時間,這是現線上劃圖像細化研究的重點。

研究意義

用骨架來表示線劃圖像能夠有效地減少數據量,減少圖像的存儲難度和識別難度。目前線劃圖(包括紙質地圖、線畫稿、手繪圖等)的存儲是非常麻煩的,存儲和使用起來都很不方便。例如,一張A4大小的線劃圖存儲需要IM的容量,另外一些比較嚴重的問題就是數據的修改、更新和顯示。矢量化是解決這些問題的方法,但這些圖的寬度經常是大於一個像素的,這會導致矢量化結果有非常大的問題,為了解決這些問題,細化就成了模式識別和矢量化的先決條件。

細化技術的一個主要套用領域是點陣圖矢量化的預處理階段,相關研究表明,利用細化技術生成的點陣圖的骨架質量受到多種因素的影響,其中包括圖像自身的噪聲、線條粗細不均勻、端點的確定以及線條交叉點選定等,因而對線劃圖像進行細化從而生成高質量骨架的方法進行研究具有現實意義。

一般要求

1、保證細化後骨架的連通性;

2、對原圖像的細節特徵要保持的較好;

3、細化的結果是原線條的中心線;

4、線條的端點保留完好;

5、線條交叉點不能發生畸變;

6、細化所用時間不能太長。

存在的問題

圖像細化是提取能表達圖像拓撲結構的骨架像素的方法,為計算機系統進行數據壓縮和識別創造條件,但要注意三點:

1、並非所有形狀的圖像都可以或者應該細化,細化比較適合由線條組成的物體,如圓環,但實心圓不適合細化;

2、任何一種細化方法都不能適用所有的情況;

3、細化是提取骨架的過程,所提取的骨架必須有實質的意義,而不是由所使用的細化算法來定義骨架。

在細化中,理想狀態是在對圖像像素進行連續移除後形成一個具有連通性的骨架。達到這個目的必須解決三個問題:

1、保持連通性;

2、保留端點;

3、確保像素點是對稱的被移除,目的是使算法能各向同性。

算法

根據算法處理步驟的不同,細化算法分為疊代細化算法和非疊代細化算法。根據檢查像素方法的不同,疊代細化算法又分為串列細化算法和並行細化算法。

非疊代算法

非疊代細化算法是不以像素為基礎的,它們通過一次遍歷的方式產生線條的某一中值或中心線,而不檢查所有單個像素,即這種算法是一次即產生骨架;如基於距離變換的方法。遊程長度編碼細化等。這類算法中最簡單的方法是通過掃描確定每段線的中心點,然後把它們連線成一副骨架,這種算法擁有計算機處理速度的優勢,但是會有容易產生噪聲點的缺陷。

疊代算法

即重複刪除圖像邊緣滿足一定條件的像素,最終得到單像素寬頻骨架。

疊代方法依據其檢查像素的方法又可以再分成:

串列算法:

在串列算法中,通過在每次疊代中用固定的次序檢查像素來判斷是否刪除像素,在第n次疊代中像素p的刪除取決於到目前為止執行過的所有操作,也就是必須在第(n-1)次疊代結果和第n次檢測像素的基礎之上進行像素刪除操作;即是否刪除像素在每次疊代的執行中是固定順序的,它不僅取決於前次疊代的結果,也取決於本次疊代中已處理過像素點分布情況。

並行算法:

在並行算法中,第n次疊代中像素的刪除只取決於(n-1)次疊代後留下的結果,因此所有像素能在每次疊代中以並行的方式獨立的被檢測;即像素點刪除與否與像素值圖像中的順序無關,僅取決於前次疊代效果。

1.

串列算法:

在串列算法中,通過在每次疊代中用固定的次序檢查像素來判斷是否刪除像素,在第n次疊代中像素p的刪除取決於到目前為止執行過的所有操作,也就是必須在第(n-1)次疊代結果和第n次檢測像素的基礎之上進行像素刪除操作;即是否刪除像素在每次疊代的執行中是固定順序的,它不僅取決於前次疊代的結果,也取決於本次疊代中已處理過像素點分布情況。

2.

並行算法:

在並行算法中,第n次疊代中像素的刪除只取決於(n-1)次疊代後留下的結果,因此所有像素能在每次疊代中以並行的方式獨立的被檢測;即像素點刪除與否與像素值圖像中的順序無關,僅取決於前次疊代效果。

相關詞條

熱門詞條

聯絡我們