一種基于不完全快速排序算法的圖像中值濾波方法
【專利摘要】本發(fā)明涉及一種基于不完全快速排序算法的圖像中值濾波方法,其具體過程為:按行優(yōu)先或列優(yōu)先順序掃描圖像所有像素,獲取圖像的目標(biāo)像素一定鄰域內(nèi)所有像素點(diǎn);在該序列中隨機(jī)選擇一個(gè)元素作為樞點(diǎn),假設(shè)一次掃描處理之后樞點(diǎn)的位置變?yōu)閙,將圖像像素點(diǎn)序列中所有小于樞點(diǎn)值的元素移動(dòng)至樞點(diǎn)之前,并將所有大于樞點(diǎn)值的元素移動(dòng)至樞點(diǎn)之后,將原始序列分成兩部分;判斷快速排序后樞點(diǎn)的位置,如果樞點(diǎn)位置恰為序列中間位置則獲取k值,使用該值替換圖像目標(biāo)像素的值,結(jié)束;否則則根據(jù)m與k的大小關(guān)系,選擇合適的子序列,重復(fù)上述過程。本發(fā)明減少了大量的數(shù)據(jù)排序和耗時(shí)的數(shù)據(jù)移動(dòng)操作,在保證處理精度的同時(shí)大幅度提高了處理速度。
【專利說明】一種基于不完全快速排序算法的圖像中值濾波方法【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及圖像處理領(lǐng)域,尤其涉及基于不完全快速排序算法的圖像中值濾波方法。
【背景技術(shù)】
[0002]噪聲過濾是數(shù)字圖像預(yù)處理中的重要步驟和環(huán)節(jié),其性能和速度直接影響后續(xù)處理工作。圖像在采集、傳輸、變換、存儲(chǔ)等過程中都有可能受到不同程度的污染,從而導(dǎo)致圖像質(zhì)量降級(jí)。目前流行的噪聲過濾方法可以分為線性算法和非線性算法兩大類。線性算法常具有低通特性,而圖像輪廓、邊緣和紋理屬于高頻部分,因此線性濾波算法會(huì)使得圖像變模糊而影響視覺效果。
[0003]作為典型的非線性濾波算法,中值濾波算法在濾除噪聲的同時(shí)可以更大程度地保留邊緣信息、輪廓信息和紋理信息。近些年來,中值濾波算法及其快速算法在圖形平滑、數(shù)據(jù)分析與處理等領(lǐng)域得到了廣泛應(yīng)用。然而,中值濾波算法通過對(duì)圖像目標(biāo)像素一定尺寸的鄰域內(nèi)所有像素進(jìn)行排序再求中值,而排序涉及大量的數(shù)據(jù)比較和移動(dòng)操作,速度非常慢。因此,經(jīng)典的中值濾波算法往往難以滿足實(shí)時(shí)性要求,尤其大濾波窗口半徑的情況。為了提高處理速度,近些年來許多學(xué)者提出了大量改進(jìn)算法,主要可以分為以下幾類:1)差集插入排序法,即保留上一次排序的結(jié)果,將相鄰兩像素的鄰域之間的差集點(diǎn)插入到前一次排序結(jié)果中,從而簡(jiǎn)化排序過程,減少數(shù)據(jù)移動(dòng)次數(shù),提高中值計(jì)算速度;2)選點(diǎn)法,即選擇鄰域內(nèi)部分像素進(jìn)行排 序得到中值,從而減少計(jì)算量;3)符號(hào)檢驗(yàn)法,即在鄰域內(nèi)按照一定規(guī)則任選一個(gè)值,然后統(tǒng)計(jì)在該鄰域內(nèi)大于該值和小于該值的像素值的個(gè)數(shù),若兩者相差小于一定程度,則認(rèn)為該值為中值;4)小窗口鄰域多次迭代法;5)并行處理算法,使用一個(gè)周期對(duì)矩形窗口中每一行進(jìn)行排序,再使用一個(gè)周期對(duì)每一行的中值進(jìn)行排序,從而提高中值濾波速度。
[0004]在眾多快速算法中,除差集插入排序法以外,其他幾種快速算法方法均存在一定的誤差,計(jì)算出的中值不一定是鄰域內(nèi)所有像素的理論中值,從而可能會(huì)使圖像質(zhì)量退化,造成一定的失真,影響圖像視覺效果。
[0005]鑒于上述缺陷,本發(fā)明創(chuàng)作者經(jīng)過長時(shí)間的研究和實(shí)踐終于獲得了本創(chuàng)作。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于提供一種基于不完全快速排序算法的圖像中值濾波方法,用以克服上述技術(shù)缺陷。
[0007]為實(shí)現(xiàn)上述目的,本發(fā)明提供一種基于不完全快速排序算法的圖像中值濾波方法,該具體過程為:
[0008]步驟al,掃描圖像所有像素,獲取圖像的目標(biāo)像素一定鄰域內(nèi)所有像素點(diǎn)并存儲(chǔ)于序列A [O]...A [N-1],序列中有η個(gè)元素;
[0009]步驟a2,在序列中選擇一個(gè)元素作為樞點(diǎn),進(jìn)行一次掃描,將圖像像素點(diǎn)序列中所有小于樞點(diǎn)值的元素移動(dòng)至樞點(diǎn)之前,并將所有大于樞點(diǎn)值的元素移動(dòng)至樞點(diǎn)之后,將原始序列分成兩部分,此時(shí)樞點(diǎn)的位置變?yōu)閙 ;
[0010]步驟a3,判斷快速排序后樞點(diǎn)值的位置;
[0011]若快速排序后樞點(diǎn)值的位置m恰好是原始序列的第k個(gè)位置,則進(jìn)行步驟a4 ;
[0012]若樞點(diǎn)位置m在原始序列的第k個(gè)元素之前,則下次快速排序的起點(diǎn)就是樞點(diǎn)位置的下一個(gè)元素,該樞點(diǎn)之前的m / η個(gè)元素在下次快速排序時(shí)將被直接丟棄,依此循環(huán)進(jìn)行;
[0013]若樞點(diǎn)位置在原始序列第k個(gè)位置之后,下次快速排序的終點(diǎn)就是樞點(diǎn)前一個(gè)位置的元素,則樞點(diǎn)之后的(n-m) / η個(gè)元素在下次處理時(shí)將被直接丟棄,依此循環(huán)進(jìn)行;
[0014]步驟a4,獲取k值,使用該值替換圖像中目標(biāo)像素的值,結(jié)束。
[0015]進(jìn)一步,在上述步驟a3中,
[0016]原序列η個(gè)元素中的g(n)個(gè)元素將在下次處理中被丟棄,即
[0017]
【權(quán)利要求】
1.一種基于不完全快速排序算法的圖像中值濾波方法,其特征在于,具體過程為: 步驟al,掃描圖像所有像素,獲取圖像的目標(biāo)像素一定鄰域內(nèi)所有像素點(diǎn)并存儲(chǔ)于序列A [O]...A [N-1],序列中有η個(gè)元素; 步驟a2,在序列中選擇一個(gè)元素作為樞點(diǎn),進(jìn)行一次掃描,將圖像像素點(diǎn)序列中所有小于樞點(diǎn)值的元素移動(dòng)至樞點(diǎn)之前,并將所有大于樞點(diǎn)值的元素移動(dòng)至樞點(diǎn)之后,將原始序列分成兩部分,此時(shí)樞點(diǎn)的位置變?yōu)閙 ; 步驟a3,判斷快速排序后樞點(diǎn)值的位置; 若快速排序后樞點(diǎn)值的位置m恰好是原始序列的第k個(gè)位置,則進(jìn)行步驟a4 ; 若樞點(diǎn)位置m在原始序列的第k個(gè)元素之前,則下次快速排序的起點(diǎn)就是樞點(diǎn)位置的下一個(gè)元素,該樞點(diǎn)之前的m / η個(gè)元素在下次快速排序時(shí)將被直接丟棄,依此循環(huán)進(jìn)行;若樞點(diǎn)位置在原始序列第k個(gè)位置之后,下次快速排序的終點(diǎn)就是樞點(diǎn)前一個(gè)位置的元素,則樞點(diǎn)之后的(n-m) / η個(gè)元素在下次處理時(shí)將被直接丟棄,依此循環(huán)進(jìn)行; 步驟a4,獲取k值,使用該值替換圖像中目標(biāo)像素的值,結(jié)束。
2.根據(jù)權(quán)利要求1所述的基于不完全快速排序算法的圖像中值濾波方法,其特征在于,在上述步驟a3中, 原來序列η個(gè)元素中的g(n)個(gè)元素將在下次處理中被丟棄,即
3.根據(jù)權(quán)利要求2所述的基于不完全快速排序算法的圖像中值濾波方法,其特征在于,在上述步驟a3中,平均時(shí)間復(fù)雜度O (η)按照下述公式計(jì)算,
4.根據(jù)權(quán)利要求2所述的基于不完全快速排序算法的圖像中值濾波方法,其特征在于,在上述步驟a3中,若不考慮序列中元素的分布,k恰好為η / 2,這種情況下時(shí)間復(fù)雜度如下述公式(6)所示,
5.根據(jù)權(quán)利要求2所述的基于不完全快速排序算法的圖像中值濾波方法,其特征在于,在上述步驟a3中,樞點(diǎn)新位置僅需要一次快速排序即可確定,時(shí)間復(fù)雜度為n-1。
【文檔編號(hào)】G06T5/00GK103793886SQ201410053199
【公開日】2014年5月14日 申請(qǐng)日期:2014年2月14日 優(yōu)先權(quán)日:2014年2月14日
【發(fā)明者】董付國, 原達(dá), 孫玲玲, 馮磊, 姜平, 厲玉蓉 申請(qǐng)人:山東工商學(xué)院