生活随笔
收集整理的這篇文章主要介紹了
                                
大气湍流退化图像复原技术研究及DSP实现
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
 
                                
                            
                            
                            目錄
 
第一章 緒論 1
 1.1 研究背景 1
 1.2 國內(nèi)外研究現(xiàn)狀 1
 1.3 本文的研究內(nèi)容 5
 1.4 本文的組織結(jié)構(gòu) 5
 第二章 大氣湍流退化圖像復(fù)原技術(shù) 7
 2.1 圖像退化及復(fù)原數(shù)學(xué)模型概述 7
 2.1.1 圖像退化的數(shù)學(xué)模型 7
 2.1.2 圖像復(fù)原的數(shù)學(xué)模型 8
 2.2 大氣湍流退化圖像概述 9
 2.2.1 大氣湍流的基本物理特性 9
 2.2.2 長曝光大氣湍流退化圖像 10
 2.2.3 短曝光大氣湍流退化圖像 11
 2.3 主流大氣湍流退化圖像復(fù)原算法 13
 2.3.1 RL-IBD 算法 13
 2.3.2Lucky Region 算法 15
 2.3.3Speckle Image 算法 18
 2.3.4 APEX 算法 22
 2.4 小結(jié) 25
 第三章 基于圖像頻譜特征的大氣湍流退化點(diǎn)擴(kuò)散函數(shù)估計(jì) 26
 3.1 點(diǎn)擴(kuò)散函數(shù)估計(jì)的一般方法 26
 3.2 基于自然景物頻譜特點(diǎn)的大氣湍流點(diǎn)擴(kuò)散函數(shù)估計(jì)方法 27
 3.2.1 自然景物圖像頻譜分析 27
 3.2.2 近似等腰三角形頻譜重建模型建立 38
 3.2.3 大氣湍流退化點(diǎn)擴(kuò)散函數(shù)估計(jì)流程 42
 3.3 小結(jié) 43
 第四章 大氣湍流退化圖像復(fù)原及實(shí)驗(yàn)結(jié)果分析 44
 4.1 大氣湍流退化圖像復(fù)原 44
 4.1.1 大氣湍流退化圖像復(fù)原過程歸納 44
 4.1.2 大氣湍流退化圖像復(fù)原實(shí)驗(yàn) 44
 4.2 大氣湍流退化圖像復(fù)原結(jié)果客觀評價(jià) 49
 4.2.1 圖像復(fù)原客觀評價(jià)指標(biāo) 49
 4.2.2 大氣湍流退化圖像復(fù)原客觀評價(jià)計(jì)算結(jié)果 50
 4.3 小結(jié) 50
 第五章 大氣湍流退化圖像復(fù)原技術(shù) DSP 實(shí)現(xiàn) 52
 5.1 硬件需求分析 52
 5.2 硬件構(gòu)架設(shè)設(shè)計(jì) 53
 5.3 PCB 設(shè)計(jì) 55
 5.3.1 電路原理圖設(shè)計(jì) 55
 5.3.2 PCB 設(shè)計(jì) 56
 5.4 程序設(shè)計(jì)以及軟硬件調(diào)試 56
 5.4.1 硬件調(diào)試 56
 5.4.2 軟件設(shè)計(jì)及調(diào)試 57
 5.5 硬件實(shí)現(xiàn)結(jié)果 59
 5.6 小結(jié) 59
 第六章 總結(jié)與展望 61
 參考文獻(xiàn) 63
 致謝 69
 
1.3 本文的研究內(nèi)容
 
依據(jù)本課題的應(yīng)用背景,本文的研究對象為大視場、遠(yuǎn)距離條件下拍攝的因大氣湍 流而退化的自然圖像。本文首先研究了圖像退化和復(fù)原的數(shù)學(xué)模型,然后調(diào)研了當(dāng)前主 流的大氣湍流退化圖像復(fù)原算法,分析了各自的優(yōu)缺點(diǎn)。其次研究了大氣湍流導(dǎo)致光學(xué) 系統(tǒng)成像退化的物理過程和基本的數(shù)學(xué)關(guān)系,為大氣湍流退化點(diǎn)擴(kuò)散函數(shù)的建立奠定了 一定的基礎(chǔ)。隨后針對大視場、遠(yuǎn)距離條件下拍攝的自然圖像,本文通過數(shù)學(xué)模擬其退 化過程,對比分析其頻譜的變化規(guī)律,并得出了能用于點(diǎn)擴(kuò)散函數(shù)估計(jì)的重要特征。利 用這些特征本文提出了大視場、遠(yuǎn)距離條件下拍攝的清晰自然圖像頻譜的近似等腰三角 形簡化模型,并利用該模型結(jié)合退化圖像的頻譜信息估計(jì)出了大氣湍流退化圖像的點(diǎn)擴(kuò) 散函數(shù),最后利用該點(diǎn)擴(kuò)散函復(fù)原出了清晰圖像。本文還在基于DSP+FPGA的數(shù)字圖像 實(shí)時(shí)處理硬件系統(tǒng)方面進(jìn)行了探究,并開發(fā)出了一套硬件系統(tǒng),同時(shí)在該硬件系統(tǒng)中驗(yàn) 證了本文提出的圖像復(fù)原算法。
 1.4 本文的組織結(jié)構(gòu)
 本文按如下的結(jié)構(gòu)進(jìn)行展開: 第一部分為緒論部分,主要介紹了本課題研究背景和意義以及國內(nèi)外研究現(xiàn)狀,并
 交代了本文的組織結(jié)構(gòu)。 第二部分完成研究的前導(dǎo)工作,分析需求與研究的難點(diǎn),找到比較切合需求的已有
 算法進(jìn)行實(shí)現(xiàn)與測試,分析已有算法在應(yīng)用中的優(yōu)劣勢。 第三部分在前導(dǎo)工作的基礎(chǔ)上,分析了大量的自然圖像的頻譜特征,找出傳統(tǒng)點(diǎn)擴(kuò)
 散函數(shù)估計(jì)算法在本應(yīng)用中的難點(diǎn)和關(guān)鍵問題,并提出符合本應(yīng)用需求的新的點(diǎn)擴(kuò)散函 數(shù)估計(jì)算法,給出了設(shè)計(jì)思路與實(shí)現(xiàn)步驟。
 第四部分介紹了大氣湍流圖像復(fù)原在MATLAB軟件中的實(shí)驗(yàn)情況,詳細(xì)說明了實(shí)驗(yàn) 條件,給出了實(shí)驗(yàn)結(jié)果,設(shè)計(jì)了客觀評價(jià)標(biāo)準(zhǔn),并依據(jù)該標(biāo)準(zhǔn)分析了圖像復(fù)原前后質(zhì)量 提高的程度,以證實(shí)本文算法的有效性。
 第五部分介紹了本課題開發(fā)的硬件處理系統(tǒng),詳細(xì)介紹了系統(tǒng)電路原理圖PCB以及 軟硬件調(diào)試的內(nèi)容和關(guān)鍵點(diǎn),最后給出了本文算法在硬件中的實(shí)現(xiàn)的結(jié)果。
 第六部為全文總結(jié),并針對現(xiàn)有研究仍存在的問題給出了改進(jìn)建議,對后續(xù)工作情況進(jìn)行了一定的規(guī)劃。
 5.1 硬件需求分析
 
本硬件系統(tǒng)需要根據(jù)上位機(jī)發(fā)送的指令要求完成對標(biāo)準(zhǔn)視頻信號的采集(將模擬視頻 信號進(jìn)行數(shù)字化)、存儲(chǔ)、處理(完成圖像復(fù)原)以及輸出(將數(shù)字圖像數(shù)據(jù)轉(zhuǎn)化為模 擬視頻信號),且整個(gè)過程必須滿足實(shí)時(shí)性的要求。
 系統(tǒng)數(shù)據(jù)量分析:
 該系統(tǒng)的輸入信號為標(biāo)準(zhǔn) PAL 制視頻信號,其信號格式符合國際電信協(xié)會(huì)提出的
 ITU-R601/656 (CCIR601/656)中的 BT.656 標(biāo)準(zhǔn)。BT.656 除了傳輸 4:2:2 的 YCbCr 視
 頻數(shù)據(jù)流外,本文轉(zhuǎn)載自http://www.biyezuopin.vip/onews.asp?id=12691還有行、列同步所用的控制信號[51]。如圖 34 所示,一幀圖像數(shù)據(jù)由一個(gè)
 625 行、每行 1728 字節(jié)的數(shù)據(jù)塊組成。其中,23~311 行是偶數(shù)場視頻數(shù)據(jù),336~624 行是奇數(shù)場視頻數(shù)據(jù),其余為垂直控制信號。
 圖 35 中,每行數(shù)據(jù)包含水平控制信號和 YCbCr 視頻數(shù)據(jù)信號。視頻數(shù)據(jù)信號排列順序 為 Cb-Y-Cr-Y。每行開始的 288 字節(jié)為行控制信號,開始的 4 字節(jié)為 EAV 信號(有效視頻結(jié)束),緊接著 280 個(gè)固定填充數(shù)據(jù),最后是 4 字節(jié)的 SAV 信號(有效視頻起始)。SAV 和 EAV 信號有 3 字節(jié)的前導(dǎo):FF、FF、00;最后 1 字節(jié) XY 表示該行位于整個(gè)數(shù)據(jù)幀 的位置及如何區(qū)分 SAV、EAV。XY 字節(jié)各比特位含義如圖 36。
 
clear all
;close all
;
Image_Input
=imread('19.bmp');
dims
=ndims(Image_Input
);                     %獲取矩陣的維數(shù)
if dims
==3Image_Gray
=rgb2gray(Image_Input
);           
elseif dims
~=2return;
end
[h
,w
]=size(Image_Gray
);                  
xr
=8;
xl
=8;
yt
=8;
yb
=8;
width
=w
-xr
-xl
;
height
=h
-yt
-yb
;
Image_Cut
=imcrop(Image_Gray
,[xr
,yt
,width
-1,height
-1]);   %  切除黑邊
figure(1);
imshow(Image_Cut
,[]);
[Row
,Column
]=size(Image_Cut
);
Image_fft
=fftshift(fft2(Image_Cut
));    %傅里葉變換
,平移
Image_abs
=abs(Image_fft
);    %求頻譜
Image_norm
=Image_abs
/max(max(Image_abs
));     %頻譜歸一化
Image_ln
=log10(Image_norm
);     %對數(shù)縮放處理
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Image_array
=Image_ln(fix(Row
/2),1:end
);      %獲取水平中心處平頻譜
% if rem(Column
,2)==0                            %使用中心零點(diǎn)對稱坐標(biāo)顯示
%     X
=-fix(Column
/2)+1:1:fix(Column
/2);
% else
%     X
=-fix(Column
/2):1:fix(Column
/2);
% end
% figure(3);
% plot(X
,Image_array
);
% xlabel('離散頻率')
% ylabel('傅里葉頻率歸一化后取自然對數(shù)');
% Datablur
=Image_array(fix(Column
/2):end
);
% figure(4);
% semilogx(Datablur
,'b:*');
% xlabel('離散頻率的自然對數(shù)');
% ylabel('傅里葉頻率歸一化后取自然對數(shù)');
% hold on
;
% X_half
=fix(Column
/2):Column
;
% count
=size(X_half
);
% k
=1:count(2);
% p
=polyfit(log10(k
),Datablur
,1);
% line
=polyval(p
,log10(k
));
% semilogx(line
,'r:*');
% hold off
;
if rem(Row
,2)~=0         %獲取水平中心處平頻譜Image_array
=Image_ln((Row
+1)/2,1:end
);      
elseImage_array
=(Image_ln(Row
/2,1:end
)+Image_ln(Row
/2+1,1:end
))/2;
end
if rem(Column
,2)==0                            %使用中心零點(diǎn)對稱坐標(biāo)顯示Data_X
=-Column
/2:Column
/2-1;
elseData_X
=-(Column
-1)/2:(Column
-1)/2;
end
figure(2);
plot(Data_X
,Image_array
);
xlabel('離散頻率')
ylabel('傅里葉頻率歸一化后取自然對數(shù)');
if rem(Column
,2)==0Data_Y
=Image_array(Column
/2+1:end
);
elseData_Y
=Image_array((Column
+1)/2:end
);
end
figure(3);
semilogx(Data_Y
,'b:*');
xlabel('離散頻率的自然對數(shù)');
ylabel('傅里葉頻率歸一化后取自然對數(shù)');
hold on
;
if rem(Column
,2)==0k
=1:Column
/2;
elsek
=1:(Column
+1)/2;
end
p
=polyfit(log10(k
),Data_Y
,1);
line
=polyval(p
,log10(k
));
semilogx(line
,'r:*');
hold off
;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 直接將雙對數(shù)坐標(biāo)下的擬合直線斜率設(shè)為
1  重建清晰圖像的頻譜  并計(jì)算參數(shù)
slope
=-1;      % 給定雙對數(shù)最佳擬合曲線的斜率,為大量統(tǒng)計(jì)得到的經(jīng)驗(yàn)值
focal_point
=7;  % 表示清晰圖像頻譜與退化圖像頻譜在雙對數(shù)坐標(biāo)系的下焦點(diǎn)力原點(diǎn)的距離
% 假設(shè)清晰圖像頻譜在雙對數(shù)坐標(biāo)系下的直線方程為 Y
=aX
+b
,a是斜率,b是截距(待求解)
% Y
=ln(G(0,focal_point
)),X
=ln(foacl_point
),b
=Y
-aX
a
=slope
;
if rem(Column
,2)==0x_length
=Column
/2;Y
=Image_array(Column
/2+focal_point
);NewSpectrumHalf
=zeros(1,Column
/2);
else x_length
=(Column
-1)/2;Y
=Image_array((Column
+1)/2+focal_point
);NewSpectrumHalf
=zeros(1,(Column
-1)/2);
end
X
=log10(focal_point
);
b
=Y
-slope
*X
;
for i
=1:x_lengthx_temp
=log10(i
);if i
<focal_point
if rem(Column
,2)==0NewSpectrumHalf(i
)=Image_array(Column
/2+i
); else NewSpectrumHalf(i
)=Image_array((Column
+1)/2+i
);end
elseNewSpectrumHalf(i
)=a
*x_temp
+b
;end
end
New_spectrum_1
=zeros(1,Column
);
for i
=1:Column                           
if rem(Column
,2)==0if i
<=Column
/2New_spectrum_1(i
)=NewSpectrumHalf(1+Column
/2-i
);elseNew_spectrum_1(i
)=NewSpectrumHalf(i
-Column
/2);end
elseif i
<(Column
+1)/2New_spectrum_1(i
)=NewSpectrumHalf((1+Column
)/2-i
);elseif i
==(Column
+1)/2New_spectrum_1(i
)=Image_array(i
);elseNew_spectrum_1(i
)=NewSpectrumHalf(i
-(Column
+1)/2);endend
end
figure(4);   
plot(Data_X
,Image_array
);
hold on
;
plot(Data_X
,New_spectrum_1
,'r:*');
hold off
;
Dvalue_1
=Image_array
-New_spectrum_1
;
figure(5);
plot(Data_X
,Dvalue_1
);
xlabel('離散頻率'); 
ylabel('含參數(shù)的代數(shù)式');
scale
=100;
Data_X_stract
=[fix(Column
/2)-scale
:fix(Column
/2)+scale
]-fix(Column
/2);
Dvalue_stract_1
=Dvalue_1(Data_X_stract
+fix(Column
/2));
figure(6);
plot(Data_X_stract
,Dvalue_stract_1
);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 用直線重建清晰圖像的頻譜y
=ax
+b  并計(jì)算參數(shù)
Number1
=10;                                                  
Number2
=20;                                               
Number3
=5;                                                   % Number3用于修正直線的斜率
y1temp
=Image_array(fix(Column
/2)-Number1
:fix(Column
/2));     
y_1
=sum(y1temp
)/(Number1
+1);                                 % 注意這里的數(shù)據(jù)個(gè)數(shù)不要搞錯(cuò)了,是Number1
+1個(gè)
x1
=fix(Column
/2)-Number3
;
x11
=fix(Column
/2)+1+Number3
;
y2temp
=Image_array(1:Number2
);
y_2
=sum(y2temp
)/Number2
+0.6;                                 % 若采用單張圖像進(jìn)行估計(jì)需要將末端整體上臺(tái)一個(gè)
1   因?yàn)橥嘶昂竽┒说念l譜不可能還是一樣。                            
x2
=1;                                                        
x22
=Column
;
coeff_a
=(y_1
-y_2
)/(x1
-x2
);                     % 對稱軸左邊
coeff_b
=((y_1
+y_2
)-coeff_a
*(x1
+x2
))/2;
coeff_c
=(y_1
-y_2
)/(x11
-x22
);                   % 對稱軸右邊
coeff_d
=((y_1
+y_2
)-coeff_a
*(x11
+x22
))/2;
for i
=1:Column
if i
<=x1
New_spectrum_2(i
)=coeff_a
*i
+coeff_b
;elseif i
>x1 
&& i
<x11
New_spectrum_2(i
)=Image_array(i
);elseif i
>=x11
New_spectrum_2(i
)=coeff_a
*(Column
-i
)+coeff_b
;end
end
figure(7);
plot(Data_X
,Image_array
);
hold on
;
plot(Data_X
,New_spectrum_2
,'r*');
xlabel('離散頻率');                             
ylabel('圖像頻譜歸一化的自然對數(shù)');
hold off
Dvalue_2
=Image_array
-New_spectrum_2
;
figure(8);
plot(Data_X
,Dvalue_2
);
xlabel('離散頻率'); 
ylabel('含參數(shù)的代數(shù)式');
Dvalue_stract_2
=Dvalue_2(Data_X_stract
+fix(Column
/2));
figure(9);
plot(Data_X_stract
,Dvalue_stract_2
);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% alpha
=0.001;
alpha
=0.0008195 ;
belta
=5/6;
Image_deblur
=ones(Row
,Column
);
if rem(Row
,2)==0for u
=-Row
/2:Row
/2-1if rem(Column
,2)==0for v
=-Column
/2:Column
/2-1H_Estimate(u
+Row
/2+1,v
+Column
/2+1)=exp(-alpha
*(u
^2+v
^2)^belta
);end
else for v
=-(Column
-1)/2:(Column
-1)/2H_Estimate(u
+Row
/2+1,v
+(Column
-1)/2+1)=exp(-alpha
*(u
^2+v
^2)^belta
);endendend
elsefor u
=-(Row
-1)/2:(Row
-1)/2if rem(Column
,2)==0for v
=-Column
/2:Column
/2-1H_Estimate(u
+(Row
-1)/2+1,v
+Column
/2+1)=exp(-alpha
*(u
^2+v
^2)^belta
);end
elsefor v
=-(Column
-1)/2:(Column
-1)/2H_Estimate(u
+(Row
-1)/2+1,v
+(Column
-1)/2+1)=exp(-alpha
*(u
^2+v
^2)^belta
);endendend
end
% Image_deblur
=Degeneration
./H_Estimate
;
% 
% Image_deblur
=ifft2(ifftshift(Image_deblur
));
% Image_deblur
=real(Image_deblur
);
% Image_deblur
=0.5*(abs(Image_deblur
)+Image_deblur
);
% figure(11);
% imshow(Image_deblur
,[]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
h_estimate
=real(ifft2(ifftshift(H_Estimate
))); % 轉(zhuǎn)化到空域上來
result
=deconvwnr(Image_Cut
,h_estimate
,0.001);
result
=ifftshift(result
); % 對圖像進(jìn)行
1、
3象限對調(diào),
2、
4象限對調(diào)
figure(10);
imshow(result
,[]);
title('維納濾波復(fù)原圖像'); 
 
 
 
 
 
 
 
 
 
                            總結(jié)
                            
                                以上是生活随笔為你收集整理的大气湍流退化图像复原技术研究及DSP实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                            
                                如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。