基于堆棧理論去除二值圖像中小面積噪聲的方法
【專利摘要】本發明公開一種可降低運行復雜度、減少運行時間、具有較好的魯棒性的基于堆棧理論去除二值圖像中小面積噪聲的方法,a.堆棧為空時,順序掃描二值圖像中沒有入棧的每個像素;b.若當前像素為黑則將當前像素入棧并標記此像素已入棧;c.此時堆棧不為空,將棧頂出棧并遞增記錄已連通區域的面積,同時再順序掃描已標記入棧像素周圍八個點;d.循環步驟b、c,將整個連通區域掃描完畢,判斷該連通區域是否小于設定的閾值,是則將此連通區域去除;否,則保留。
【專利說明】基于堆棧理論去除二值圖像中小面積噪聲的方法
【技術領域】
[0001]本發明涉及一種去除二值圖像中小面積噪聲的方法,尤其是一種可降低運行復雜度、減少運行時間、具有較好的魯棒性的基于堆棧理論去除二值圖像中小面積噪聲的方法。
【背景技術】
[0002]目前,對于二值圖像中的小面積噪聲的去除方法,可以采用并可達到理性效果的是楊淑瑩教授在《VC++圖像處理程序設計》教程中講述的閾值面積方法,其基本思路是將二值圖像中所有連通區域首先分別編號同時統計各個區域的面積,然后再將面積小于閾值的區域按標號分多次消除。該方法雖然去噪效果好但是復雜度高(對于大小為256X256的圖像,復雜度等于掃描次數乘2562)耗時長且對圖像中連通區域的數量有不超過250個的限制。
[0003]堆棧是一種只能在一端執行插入和刪除操作的先進后出的數據結構,具有“保護現場”和“恢復現場”的作用,所以常被用在子程序調用、遞歸調用、二叉樹遍歷及圖形的深度優先搜索算法等操作中。堆棧結構中主要有top和bottom兩個指針變量及入棧、出棧、判空和取棧頂四種操作,其中top指針會根據出入棧操作而移動一當入棧時top指向新開辟的元素地址,出棧時top指針后退指向原來的棧頂。但是,至今為止,還沒有關于基于堆棧理論去除二值圖像中小面積噪聲的相關報道。
【發明內容】
[0004]本發明是為了解決現有技術所存在的上述技術問題,提供一種可降低運行復雜度、減少運行時間、具有較好的魯棒性的基于堆棧理論去除二值圖像中小面積噪聲的方法。
[0005]本發明的技術解決方案是:一種基于堆棧理論去除二值圖像中小面積噪聲的方法,其特征在于按照如下步驟進行:
a.堆棧為空時,順序掃描二值圖像中沒有入棧的每個像素;
b.若當前像素為黑則將當前像素入棧并標記此像素已入棧;
c.此時堆棧不為空,將棧頂出棧并遞增記錄已連通區域的面積,同時再順序掃描已標記入棧像素周圍八個點;
d.循環步驟b、C,將整個連通區域掃描完畢,判斷該連通區域是否小于設定的閾值,是則將此連通區域去除;否,則保留。
[0006]本發明是基于堆棧理論去除二值圖像中小面積噪聲,具有較好的魯棒性,不僅去噪效果好,而且對于二值圖像僅掃描一次,在掃描的同時確定并消除噪聲區域,所以對于大小為256X256的圖像,復雜度僅為2562,因其復雜度低,故運行時間短。
【專利附圖】
【附圖說明】
[0007]圖1是本發明實施例所用二值圖像。
[0008]圖2是現有技術閾值面積法去噪效果不意圖。[0009]圖3是本發明實施例去噪效果示意圖。
[0010]圖4是現有技術閾值面積法去噪運行時間示意圖。
[0011]圖5是本發明實施例去噪運行時間不意圖。
[0012]圖6是本發明實施例魯棒性比較所用圖像。
[0013]圖7是現有技術閾值面積法去噪執行結果示意圖。
[0014]圖8是本發明實施例去噪執行結果示意圖。
【具體實施方式】
[0015]基于堆棧理論去除如圖1所示二值圖像中小面積噪聲的方法,設定閾值為5000,按照如下步驟進行:
a.堆棧為空時,順序掃描二值圖像中沒有入棧的每個像素;
b.若當前像素為黑則將當前像素入棧并標記此像素已入棧;
c.此時堆棧不為空,將棧頂出棧并遞增記錄已連通區域的面積,同時再順序掃描已標記入棧像素周圍八個點;
d.循環步驟b、C,將整個連通區域掃描完畢,判斷該連通區域是否小于設定的閾值,是則將此連通區域去除;否,則保留。
[0016]重復a?d步驟,直至將整個二值圖像掃描一遍,去除所有噪音。
[0017]因為小面積噪聲區域中像素的個數(一般指黑像素個數)是未知的,所以申請與圖像大小相等的數組并規定僅可從數組尾存取數據代表堆棧結構。
[0018]采用現有技術閾值面積法對圖1所示圖像去噪效果如圖2所示。
[0019]本發明實施例對對圖1所示圖像去噪效果如圖3所示。
[0020]將圖2、圖3對比可以看出,本發明去噪效果與現有技術相當。
[0021]1.時間復雜度比較
此處定義方法的時間復雜度為去噪過程中被計算的像素點總個數,對于大小為256 X 256的圖像,現有技術的時間復雜度等于掃描次數乘2562,本發明僅掃描圖像一次,在掃描的同時確定并消除噪聲區域,所以復雜度為2562。
[0022]2.實際運行時間比較
程序運行過程中,在去噪代碼前后分別插入輸出當前時間的函數,現有技術運行時間示意圖如圖3所示,本發明實施例運行時間示意圖如圖4所示。可以看出:現有技術運行時間為:29365937-29365406=531ms ;本發明運行時間為:29461640_29461625=15ms ;本發明與現有技術相比可以節約35倍的時間。
[0023]3.魯棒性比較
使用現有技術閾值面積法及本發明分別對圖6所示圖像進行去噪處理,在圖6中共含有70個大小不等的連通區域,兩種方法執行過程中面積閾值都為3000,執行結果分別如圖7,8所示。圖7是現有技術閾值面積法去噪執行結果示意圖、圖8是本發明實施例去噪執行結果示意圖。從圖7可以看出閾值面積在閾值為3000的條件下顯示“連通區域數目太多,請增大閾值”提示信息,且對原圖像沒有做任何處理;從圖8中可以看出,本發明同樣在閾值3000的條件下,去噪效果較好,具有較好的魯棒性。
【權利要求】
1.一種基于堆棧理論去除二值圖像中小面積噪聲的方法,其特征在于按照如下步驟進行: a.堆棧為空時,順序掃描二值圖像中的沒有入棧的每個像素; b.若當前像素為黑則將當前像素入棧并標記此像素已入棧; c.此時堆棧不為空,將棧頂出棧并遞增記錄已連通區域的面積,同時再順序掃描已標記入棧像素周圍八個點; d.循環步驟b、C,將整個連通區域掃描完畢,判斷該連通區域是否小于設定的閾值,是則將此連通區域去除;否,則保留。
【文檔編號】G06T5/00GK103646380SQ201310600165
【公開日】2014年3月19日 申請日期:2013年11月25日 優先權日:2013年11月25日
【發明者】郭顯久, 耿春云 申請人:大連海洋大學