一種在fpga上實(shí)現(xiàn)的圖像去霧方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于圖像處理技術(shù)領(lǐng)域,涉及一種在FPGA上實(shí)現(xiàn)的圖像去霧方法。
【背景技術(shù)】
[0002] 在視頻監(jiān)控、攝像、導(dǎo)航控制、目標(biāo)跟蹤等技術(shù)領(lǐng)域,都涉及到對有霧圖像的處理。 在霧霾等惡劣天氣下物體的反射光在大氣中發(fā)生散射和吸收,導(dǎo)致獲取的圖像不清晰,信 息丟失,可視性差,色彩淡化。由于霧霾問題的特殊性,目前大多數(shù)都是從算法出發(fā)通過軟 件對圖像去霧。一些算法已經(jīng)獲得了很好的去霧效果,如在亮度分量上進(jìn)行多尺度Retinex 處理的去霧算法,雙邊濾波去霧算法,基于已知的景深模型的去霧算法,這些算法都需要一 些特定的先驗(yàn)信息,不利于系統(tǒng)的整體實(shí)現(xiàn),也不利于實(shí)際應(yīng)用中硬件實(shí)現(xiàn)。對于單幅圖像 的快速去霧也有不少學(xué)者在研宄,如利用中值濾波及導(dǎo)向?yàn)V波細(xì)化透射率的去霧算法,僅 利用均值濾波估計(jì)全局大氣光的快速去霧算法,對大氣散射模型簡化后的快速去霧算法, 基于邊界鄰域最大值濾波的去霧算法,利用快速雙邊濾波保持邊緣特性的去霧算法,分割 不同霧濃度區(qū)域獲取大氣光的快速去霧算法,這些算法速度相對較快,但仍達(dá)不到實(shí)時處 理的需求,或者滿足不了對視頻處理的要求。
[0003] 在眾多去霧算法中,暗通道先驗(yàn)去霧算法是對有霧圖像的霧濃度進(jìn)行準(zhǔn)確估計(jì), 真正考慮到霧的存在及其影響,從而達(dá)到去霧的目的,去霧效果最為顯著。后來有人發(fā)現(xiàn)暗 通道先驗(yàn)理論并利用其求出粗略的大氣透射率,然后結(jié)合軟摳法(soft matting)得到了比 較細(xì)膩的透射率,去霧效果最為顯著,但該算法軟件運(yùn)算復(fù)雜度較高,導(dǎo)致針對圖像處理速 度較慢,無法滿足實(shí)時處理的要求。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的是提供一種在FPGA上實(shí)現(xiàn)的圖像去霧方法,解決了現(xiàn)有技術(shù)中存 在的針對有霧圖像處理速度慢導(dǎo)致無法滿足實(shí)時處理要求的問題。
[0005] 本發(fā)明所采用的技術(shù)方案是,一種在FPGA上實(shí)現(xiàn)的圖像去霧方法,包括以下步 驟:
[0006] 步驟1,輸入原圖,即彩色有霧圖像至FPGA,獲取彩色有霧圖像的R,G,B三個通道 的像素?cái)?shù)據(jù)并分別存入三個大小相同的只讀存儲器ROM中;
[0007] 步驟2,分別對三個通道的像素?cái)?shù)據(jù)進(jìn)行最小值濾波,并取其中最小值,即得到暗 通道;
[0008] 步驟3,將暗通道和R、G、B三個通道的數(shù)據(jù)分別采用閾值比較法并行計(jì)算求取三 個通道的全局大氣光A ;
[0009] 步驟4,根據(jù)全局大氣光A、簡化的暗通道和原圖求透射率t(x);具體方法為:
[0010]
【主權(quán)項(xiàng)】
1. 一種在FPGA上實(shí)現(xiàn)的圖像去霧方法,其特征在于,包括以下步驟: 步驟1,輸入原圖,即彩色有霧圖像至FPGA,獲取彩色有霧圖像的R,G,B三個通道的像 素?cái)?shù)據(jù)并分別存入三個大小相同的只讀存儲器ROM中; 步驟2,分別對三個通道的像素?cái)?shù)據(jù)進(jìn)行最小值濾波,并取其中最小值,即得到暗通 道; 步驟3,將暗通道和R、G、B三個通道的數(shù)據(jù)分別采用閾值比較法并行計(jì)算求取三個通 道的全局大氣光A ; 步驟4,根據(jù)全局大氣光A、簡化的暗通道和原圖求透射率t(x);具體方法為:
式中,ω = [〇,l],F(xiàn)(y)是各通道的圖像數(shù)據(jù);Ae是各通道的全局大氣光;上標(biāo)c表示 R(紅),G(綠),B(藍(lán))三個通道,Ω (X)表示X的一個鄰域,y為鄰域中的像素點(diǎn),X為原 圖中的像素點(diǎn); 其中,簡化的暗通道的獲取方法如下: 步驟4. 1,對步驟1中輸入的彩色有霧圖像采用邊緣檢測法檢測出邊緣圖像; 步驟4. 2,將邊緣圖像與原圖的R,G,B通道的數(shù)據(jù)分別進(jìn)行比較,將R,G,B通道中與邊 緣圖像像素值一樣的像素點(diǎn)標(biāo)記出來,即得到邊緣部分,故將原圖劃分為邊緣部分和非邊 緣部分; 步驟4. 2,對邊緣部分保持原值不做處理,非邊緣部分進(jìn)行最小值濾波,并取R,G,B通 道中的最小值作為簡化的暗通道; 擊驟5,枏抿誘射鑾、女氣光A和原圖恢復(fù)m子霧圖像,具體為:
式中,I(X)為彩色有霧圖像,J(X)為恢復(fù)后的無霧圖像,h為閾值,取值0. 1。
2. 根據(jù)權(quán)利要求1所述的一種在FPGA上實(shí)現(xiàn)的圖像去霧方法,其特征在于,所述步驟 2中最小值濾波的過程具體為: 步驟2. 1,將任一通道的像素?cái)?shù)據(jù)依次輸入到兩個行緩沖器中,并經(jīng)過列延時,形成 3X3模板; 步驟2. 2,將步驟2. 1中得到的3 X 3模板中的9個像素值均進(jìn)行最小值濾波,并取濾波 后其中最小的像素值作為暗通道。
3. 根據(jù)權(quán)利要求2所述的一種在FPGA上實(shí)現(xiàn)的圖像去霧方法,其特征在于,所述步驟 2. 1具體為: A,將R0M_X中讀取的第一行數(shù)據(jù)先寫入行緩沖器2中;R0M_X代表任意一個通道的像 素?cái)?shù)據(jù)對應(yīng)的只讀存儲器,X為通道,取值為R,G,B,當(dāng)X為R時,R0M_R為只讀存儲器中存 儲R通道的像素?cái)?shù)據(jù),當(dāng)X為G時,R0M_G為只讀存儲器中存儲G通道的像素?cái)?shù)據(jù),當(dāng)X為B 時,R0M_B為只讀存儲器中存儲B通道的像素?cái)?shù)據(jù); B,當(dāng)?shù)诙袛?shù)據(jù)到來時,將行緩沖器2當(dāng)中的第一行數(shù)據(jù)寫入行緩沖器1中,并將第二 行數(shù)據(jù)寫入行緩沖器2當(dāng)中; C,當(dāng)?shù)谌袛?shù)據(jù)到來時,將ROM_X輸出的數(shù)據(jù)以及兩個行緩沖器輸出的數(shù)據(jù)分別經(jīng)過 列延時形成3X3模板。
4. 根據(jù)權(quán)利要求3所述的一種在FPGA上實(shí)現(xiàn)的圖像去霧方法,其特征在于,行緩沖器 1和行緩沖器2均采用FIFO實(shí)現(xiàn)。
5. 根據(jù)權(quán)利要求1所述的一種在FPGA上實(shí)現(xiàn)的圖像去霧方法,其特征在于,所述步驟 3中的閾值比較法具體為: 步驟3. 1,將X通道中所有暗通道數(shù)據(jù)依次與閾值h進(jìn)行比較,如果暗通道數(shù)據(jù)小于閾 值h,則將該暗通道數(shù)據(jù)對應(yīng)的像素點(diǎn)舍棄;如果暗通道數(shù)據(jù)大于閾值h,則將該暗通道數(shù) 據(jù)與原圖中該暗通道數(shù)據(jù)對應(yīng)位置上的像素值比較,并執(zhí)行步驟3. 2 ; 步驟3. 2,如果該暗通道數(shù)據(jù)大于原圖對應(yīng)位置上的像素值,則將原圖對應(yīng)位置上的像 素值作為A'值;如果該暗通道數(shù)據(jù)不大于原圖對應(yīng)位置上的像素值,則將該暗通道數(shù)據(jù) 作為Y值; 步驟3. 3,將步驟3. 2中得到的A '值與下一個暗通道數(shù)據(jù)進(jìn)行比較,并執(zhí)行步驟 3. 1~步驟3. 2,將最終得到的Y值作為X通道的全局大氣光A值。
【專利摘要】本發(fā)明公開了一種在FPGA上實(shí)現(xiàn)的圖像去霧方法,包括以下步驟:輸入彩色有霧圖像至FPGA,獲取彩色有霧圖像的R,G,B三個通道的像素?cái)?shù)據(jù)并分別存入三個大小相同的只讀存儲器中;分別對三個通道的像素?cái)?shù)據(jù)進(jìn)行最小值濾波,并取其中最小值,即得到暗通道;將暗通道和R、G、B三個通道的數(shù)據(jù)分別采用閾值比較法并行計(jì)算求取三個通道的全局大氣光;根據(jù)全局大氣光、簡化的暗通道和原圖求透射率;根據(jù)透射率、大氣光和原圖恢復(fù)出無霧圖像。本發(fā)明的一種在FPGA上實(shí)現(xiàn)的圖像去霧方法,解決了現(xiàn)有技術(shù)中存在的針對有霧圖像處理速度慢導(dǎo)致無法滿足實(shí)時處理要求的問題。
【IPC分類】G06T5-00
【公開號】CN104751421
【申請?zhí)枴緾N201510104930
【發(fā)明人】胡遼林, 劉光飛, 安靖宇
【申請人】西安理工大學(xué)
【公開日】2015年7月1日
【申請日】2015年3月10日