日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

大气湍流退化图像复原技术研究及DSP实现

發布時間:2024/3/12 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大气湍流退化图像复原技术研究及DSP实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

第一章 緒論 1
1.1 研究背景 1
1.2 國內外研究現狀 1
1.3 本文的研究內容 5
1.4 本文的組織結構 5
第二章 大氣湍流退化圖像復原技術 7
2.1 圖像退化及復原數學模型概述 7
2.1.1 圖像退化的數學模型 7
2.1.2 圖像復原的數學模型 8
2.2 大氣湍流退化圖像概述 9
2.2.1 大氣湍流的基本物理特性 9
2.2.2 長曝光大氣湍流退化圖像 10
2.2.3 短曝光大氣湍流退化圖像 11
2.3 主流大氣湍流退化圖像復原算法 13
2.3.1 RL-IBD 算法 13
2.3.2Lucky Region 算法 15
2.3.3Speckle Image 算法 18
2.3.4 APEX 算法 22
2.4 小結 25
第三章 基于圖像頻譜特征的大氣湍流退化點擴散函數估計 26
3.1 點擴散函數估計的一般方法 26
3.2 基于自然景物頻譜特點的大氣湍流點擴散函數估計方法 27
3.2.1 自然景物圖像頻譜分析 27
3.2.2 近似等腰三角形頻譜重建模型建立 38
3.2.3 大氣湍流退化點擴散函數估計流程 42
3.3 小結 43
第四章 大氣湍流退化圖像復原及實驗結果分析 44
4.1 大氣湍流退化圖像復原 44
4.1.1 大氣湍流退化圖像復原過程歸納 44
4.1.2 大氣湍流退化圖像復原實驗 44
4.2 大氣湍流退化圖像復原結果客觀評價 49
4.2.1 圖像復原客觀評價指標 49
4.2.2 大氣湍流退化圖像復原客觀評價計算結果 50
4.3 小結 50
第五章 大氣湍流退化圖像復原技術 DSP 實現 52
5.1 硬件需求分析 52
5.2 硬件構架設設計 53
5.3 PCB 設計 55
5.3.1 電路原理圖設計 55
5.3.2 PCB 設計 56
5.4 程序設計以及軟硬件調試 56
5.4.1 硬件調試 56
5.4.2 軟件設計及調試 57
5.5 硬件實現結果 59
5.6 小結 59
第六章 總結與展望 61
參考文獻 63
致謝 69

1.3 本文的研究內容

依據本課題的應用背景,本文的研究對象為大視場、遠距離條件下拍攝的因大氣湍 流而退化的自然圖像。本文首先研究了圖像退化和復原的數學模型,然后調研了當前主 流的大氣湍流退化圖像復原算法,分析了各自的優缺點。其次研究了大氣湍流導致光學 系統成像退化的物理過程和基本的數學關系,為大氣湍流退化點擴散函數的建立奠定了 一定的基礎。隨后針對大視場、遠距離條件下拍攝的自然圖像,本文通過數學模擬其退 化過程,對比分析其頻譜的變化規律,并得出了能用于點擴散函數估計的重要特征。利 用這些特征本文提出了大視場、遠距離條件下拍攝的清晰自然圖像頻譜的近似等腰三角 形簡化模型,并利用該模型結合退化圖像的頻譜信息估計出了大氣湍流退化圖像的點擴 散函數,最后利用該點擴散函復原出了清晰圖像。本文還在基于DSP+FPGA的數字圖像 實時處理硬件系統方面進行了探究,并開發出了一套硬件系統,同時在該硬件系統中驗 證了本文提出的圖像復原算法。
1.4 本文的組織結構
本文按如下的結構進行展開: 第一部分為緒論部分,主要介紹了本課題研究背景和意義以及國內外研究現狀,并
交代了本文的組織結構。 第二部分完成研究的前導工作,分析需求與研究的難點,找到比較切合需求的已有
算法進行實現與測試,分析已有算法在應用中的優劣勢。 第三部分在前導工作的基礎上,分析了大量的自然圖像的頻譜特征,找出傳統點擴
散函數估計算法在本應用中的難點和關鍵問題,并提出符合本應用需求的新的點擴散函 數估計算法,給出了設計思路與實現步驟。
第四部分介紹了大氣湍流圖像復原在MATLAB軟件中的實驗情況,詳細說明了實驗 條件,給出了實驗結果,設計了客觀評價標準,并依據該標準分析了圖像復原前后質量 提高的程度,以證實本文算法的有效性。
第五部分介紹了本課題開發的硬件處理系統,詳細介紹了系統電路原理圖PCB以及 軟硬件調試的內容和關鍵點,最后給出了本文算法在硬件中的實現的結果。
第六部為全文總結,并針對現有研究仍存在的問題給出了改進建議,對后續工作情況進行了一定的規劃。
5.1 硬件需求分析

本硬件系統需要根據上位機發送的指令要求完成對標準視頻信號的采集(將模擬視頻 信號進行數字化)、存儲、處理(完成圖像復原)以及輸出(將數字圖像數據轉化為模 擬視頻信號),且整個過程必須滿足實時性的要求。
系統數據量分析:
該系統的輸入信號為標準 PAL 制視頻信號,其信號格式符合國際電信協會提出的
ITU-R601/656 (CCIR601/656)中的 BT.656 標準。BT.656 除了傳輸 4:2:2 的 YCbCr 視
頻數據流外,本文轉載自http://www.biyezuopin.vip/onews.asp?id=12691還有行、列同步所用的控制信號[51]。如圖 34 所示,一幀圖像數據由一個
625 行、每行 1728 字節的數據塊組成。其中,23~311 行是偶數場視頻數據,336~624 行是奇數場視頻數據,其余為垂直控制信號。
圖 35 中,每行數據包含水平控制信號和 YCbCr 視頻數據信號。視頻數據信號排列順序 為 Cb-Y-Cr-Y。每行開始的 288 字節為行控制信號,開始的 4 字節為 EAV 信號(有效視頻結束),緊接著 280 個固定填充數據,最后是 4 字節的 SAV 信號(有效視頻起始)。SAV 和 EAV 信號有 3 字節的前導:FF、FF、00;最后 1 字節 XY 表示該行位于整個數據幀 的位置及如何區分 SAV、EAV。XY 字節各比特位含義如圖 36。

clear all;close all; Image_Input=imread('19.bmp'); dims=ndims(Image_Input); %獲取矩陣的維數 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); %對數縮放處理 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Image_array=Image_ln(fix(Row/2),1:end); %獲取水平中心處平頻譜 % if rem(Column,2)==0 %使用中心零點對稱坐標顯示 % 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('傅里葉頻率歸一化后取自然對數'); % Datablur=Image_array(fix(Column/2):end); % figure(4); % semilogx(Datablur,'b:*'); % xlabel('離散頻率的自然對數'); % ylabel('傅里葉頻率歸一化后取自然對數'); % 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 %使用中心零點對稱坐標顯示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('傅里葉頻率歸一化后取自然對數'); 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('離散頻率的自然對數'); ylabel('傅里葉頻率歸一化后取自然對數'); 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; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 直接將雙對數坐標下的擬合直線斜率設為1 重建清晰圖像的頻譜 并計算參數 slope=-1; % 給定雙對數最佳擬合曲線的斜率,為大量統計得到的經驗值 focal_point=7; % 表示清晰圖像頻譜與退化圖像頻譜在雙對數坐標系的下焦點力原點的距離 % 假設清晰圖像頻譜在雙對數坐標系下的直線方程為 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_pointif rem(Column,2)==0NewSpectrumHalf(i)=Image_array(Column/2+i); else NewSpectrumHalf(i)=Image_array((Column+1)/2+i);endelseNewSpectrumHalf(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);endelseif 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('含參數的代數式'); 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 并計算參數 Number1=10; Number2=20; Number3=5; % Number3用于修正直線的斜率 y1temp=Image_array(fix(Column/2)-Number1:fix(Column/2)); y_1=sum(y1temp)/(Number1+1); % 注意這里的數據個數不要搞錯了,是Number1+1個 x1=fix(Column/2)-Number3; x11=fix(Column/2)+1+Number3; y2temp=Image_array(1:Number2); y_2=sum(y2temp)/Number2+0.6; % 若采用單張圖像進行估計需要將末端整體上臺一個1 因為退化前后末端的頻譜不可能還是一樣。 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:Columnif i<=x1New_spectrum_2(i)=coeff_a*i+coeff_b;elseif i>x1 && i<x11New_spectrum_2(i)=Image_array(i);elseif i>=x11New_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('圖像頻譜歸一化的自然對數'); hold off Dvalue_2=Image_array-New_spectrum_2; figure(8); plot(Data_X,Dvalue_2); xlabel('離散頻率'); ylabel('含參數的代數式'); 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);endelse 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);endelsefor 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))); % 轉化到空域上來 result=deconvwnr(Image_Cut,h_estimate,0.001); result=ifftshift(result); % 對圖像進行1、3象限對調,2、4象限對調 figure(10); imshow(result,[]); title('維納濾波復原圖像');










總結

以上是生活随笔為你收集整理的大气湍流退化图像复原技术研究及DSP实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。