【圖像修復(fù)】基于curvelet變換和TV算法實現(xiàn)圖像修復(fù)含Matlab源碼
1 簡介
隨著信息化技術(shù)的飛速發(fā)展,圖像處理成為信號處理領(lǐng)域的重要研究課題和熱點問題。圖像處理包括很多研究方向,如圖像去噪、圖像融合[1-2]、圖像分割[3-4]等。圖像信號是經(jīng)由圖像傳感器設(shè)備將現(xiàn)實世界中的有用信號通過采集、傳輸、編碼和恢復(fù)得到的,由于電磁干擾、信道噪聲、傳感器噪聲等無可避免的客觀噪聲源,圖像去噪成為圖像預(yù)處理中最關(guān)鍵也是最基礎(chǔ)的一步,在滿足人們對于圖像的清晰度和信息準(zhǔn)確度的高要求的同時也為圖像后續(xù)的進一步處理奠定了堅實的基礎(chǔ)。如果對一幅含有噪聲的圖像進行特征提取,融合或者圖像分割,必然難以產(chǎn)生令人滿意的處理結(jié)果。根據(jù)實際情況中圖像的噪聲統(tǒng)計特性,噪聲的分布特點以及頻譜的分布規(guī)律等,從處理域的角度對圖像去噪進行劃分可以分成空間域去噪和變換域去噪兩個大類[5]??臻g域去噪是在圖像數(shù)據(jù)的二維空間上直接進行相關(guān)線性或者非線性處理,而后者一般是利用一組正交基函數(shù)逼近原始圖像信號函數(shù)進行域變換,然后把變換域的系數(shù)做相關(guān)的處理,最后再把處理后的信號進行逆變換到原始域.
空間域的線性濾波技術(shù)是發(fā)展成熟且分析簡單的傳統(tǒng)去噪理論,適用于濾除和信號不相關(guān)的隨機統(tǒng)計特性的噪聲信號。但是線性濾波的固有缺陷十分明顯,它在去除隨機噪聲的同時嚴(yán)重?fù)p害了圖像的邊緣紋理細(xì)節(jié),使其無法很好的運用在圖像的噪聲濾除這一領(lǐng)域。空間域的非線性濾波方法與上述的線性濾波技術(shù)相比都有著較好的去噪效果,在一定程度上提高了邊緣細(xì)節(jié)的保護能力。常見的非線性濾波包括中值濾波、維納濾波、自適應(yīng)濾波等。然而,這些方法仍存在算法效率低,計算量大,幾何解釋不直觀的缺點。比如中值濾波是一種典型的非線性濾波技術(shù),能夠有效抑制椒鹽噪聲,且較好的保護圖像邊緣細(xì)節(jié)信息,但因為運用了大量的排序運算,運算效率低,會影響實時信號的處理。
基于頻域的數(shù)字域濾波技術(shù)最早始于傅立葉變換理論的提出。1982?年,法國數(shù)學(xué)家傅立葉提出并證明了周期信號可以展開為正弦級數(shù),從而將時域和頻域之間架起了連接的橋梁,將難以分析的時域信號轉(zhuǎn)化到頻域分析,從而成為極其有力的信號處理和分析工具。由于傅立葉變換不具備分析非平穩(wěn)信號的能力,1946?年?Gabor?在傅立葉理論的基礎(chǔ)上提出了短時傅立葉變換,通過時頻局部化的窗口函數(shù)獲取某一時刻的局部信號特征,提高了時間分辨率。
由于短時傅立葉變化的窗口固定大小,不能有效解決非平穩(wěn)信號的頻率變化問題,1984?年地球物理學(xué)家?Morlet?提出了小波分析這一概念,并于?1986?年由數(shù)學(xué)家?Meyer?和?Mall at?提出構(gòu)造小波函數(shù)的多尺度分析方法,進一步完善了小波分析理論,從此將這一理論廣泛的應(yīng)用到信號處理領(lǐng)域。



2 部分代碼
function u = rgb_TV_inpainting_primal_dual(miss_image,miss_data, lambda, maxiter,check)
[n_row,n_col,c] = size(miss_image);
N ? ? ? ? ? ? = n_row * n_col;
nabla ? ? ? ? = make_nabla(n_col,n_row);
v_miss_image = zeros(N,c);
v_miss_data ?= zeros(N,c);
for i = 1:c
? ?v_miss_image(:,i) = reshape(miss_image(:,:,i)',N,1);
? ?v_miss_data(:,i) ?= reshape(miss_data(:,:,i)',N,1);
end
%initialization
u ? ? ?= v_miss_image;
p ? ? ?= zeros(2*N,c);
head_u = u;
% algorithm parameter
L ? ? ?= sqrt(8);
tau ? ?= 0.01;
sigma ?= (1/L^2)/tau;
theta ?= 0.5;
for n_processing = 1:maxiter ? ?
? ?old_u ? = u;
? ?%update dual
? ?temp_p ?= nabla * head_u * sigma + p; ? ?
? ?sqrt_p ?= repmat(sqrt(temp_p(1:N,:).^2 + temp_p(N+1:2*N,:).^2),[2,1]); ? ?
? ?p ? ? ? = temp_p./(max(1,sqrt_p));
? ?% update primal
? ?temp_u = old_u - tau * nabla' * p;
? ?idx1 = (v_miss_data == 1);
? ?u(idx1) ? = (temp_u(idx1) + tau * lambda * v_miss_image(idx1))/(1 + tau * lambda);
? ?idx2 = (v_miss_data == 0);
? ?u(idx2) = temp_u(idx2);
? ?head_u = u + theta * (u - old_u);
? ?if mod(n_processing,check) == 0
? ? ? ?fprintf('TV inpainting Primal-Dual: it = %4d\n', n_processing); ? ? ? ?
? ? ? ?matrix_u = zeros(n_row,n_col,c);
? ? ? ?for i = 1:c
? ? ? ? ? ?matrix_u(:,:,i) = (reshape(u(:,i),n_col,n_row))'; ? ? ? ?
? ? ? ?end
? ? ? ?subplot(2,2,1), imshow(miss_image,[]);
? ? ? ?title('受損圖像');
? ? ? ?subplot(2,2,2), imshow(matrix_u,[]);
? ? ? ?title('TV修復(fù)');drawnow;
? ?end
end
3 仿真結(jié)果
4 參考文獻(xiàn)
[1]彭嘯. 基于TV模型和紋理合成的圖像修復(fù)算法研究[D]. 華南理工大學(xué), 2011.
[2]呂雪瑩. 基于Curvelet變換的圖像去噪算法研究. 哈爾濱工業(yè)大學(xué), 2015.
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機、圖像處理、路徑規(guī)劃、無人機等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
