目录

第一章 绪论 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实现相关推荐

  1. 湍流退化图像复原如何使用matlab,湍流退化图像复原技术研究现状及展望

    0引言目标通过大气湍流的成像是诸如天文观测.精确制导等光电探测成像系统必然会遇到的问题,它影响到光学系统的成像性能.特别是随着地基高分辨力成像望远镜技术的发展,从湍流退化图像中有效地恢复出原目标图像, ...

  2. 灯管实验的em算法_Gamma过程的加速退化试验设计关键技术研究

    Gamma过程的加速退化试验设计关键技术研究 导读:本文在介绍步进应力加速退化试验设计基本理论的基础上,研究基十Gamma过程的步进应力加速退化试验设计相关问题,给出单应力.多应力下步进应力加速退化试 ...

  3. matlab实现大气湍流退化模型算法,大气湍流下退化序列图像的目标检测方法

    引言 目标检测是计算机视觉的重要应用之一, 是后续目标识别.跟踪.目标分类以及行为分析的前提.远距离成像时通常会受到复杂变化的大气湍流影响, 使得成像结果中存在不规则抖动.偏移和模糊等退化现象[.因此 ...

  4. 湍流退化图像复原如何使用matlab,一种基于相关最大性的湍流退化图像复原方法与流程...

    本发明涉及退化图像复原方法,特别涉及一种大气湍流图像复原问题,属于多帧湍流图像复原领域. 背景技术: 在中远距离成像系统中,由于风速.温度等影响造成的大气湍流现象,使得传播介质折射率不规则变化,导致光 ...

  5. 星敏感器 matlab,基于星敏感器的星图模拟与去噪技术研究

    2017年 9月上 论述 247 基于星敏感器的星图模拟与去噪技术研究 刘奕君 ,薄宇阳 (北京市第三十五中学,北京市西城区 100032) [摘 要]随着小卫星应用技术的日趋成熟,测量精度高的 CC ...

  6. matlab实现大气湍流退化模型算法,matlab与图像处理

    关于MATLAB在数字图像复原技术中应用的文献综述 摘要:图像复原技术在图像处理领域中具有非常重要的地位,该技术能够最大程度地恢复图像的本来面貌图像复原技术的重点在于找出导致图像失真的原因,并针对该原 ...

  7. 论文简读《视听觉深度伪造检测技术研究综述》

    ​ <视听觉深度伪造检测技术研究综述> 概述: ​ 深度学习被广泛的应用于各个领域,自然语言处理.计算机视觉.无人驾驶等,推动了人工智能的发展.但在带来好处的同时,也对信息安全方面也有一定 ...

  8. 《拜占庭系统技术研究综述_范捷》笔记

    <拜占庭系统技术研究综述_范捷>笔记 文献信息:清华大学,期刊,2013,范捷 Abstract 分析了目前拜占庭系统的研究现状,并探讨了拜占庭系统的发展趋势 Conclusion 成果涌 ...

  9. 认识多帧1:多帧图像复原算法研究

    引言 阅读硕士论文,简单了解多帧图像处理算法,本篇为多帧图像复原算法 认识图片退化现象 主要分为两类:图像噪声和图像模糊,噪声具有随机性而模糊具有固定性.模糊根据成因可以分为两类:散焦模糊.运动模糊. ...

最新文章

  1. 【原创】A进程窗口嵌入到B进程窗口中显示
  2. HDU-4568 Hunter 状态压缩
  3. 全球及中国水产加工市场消费潜力分析与投资规模建议报告2022版
  4. 02-Popover代码实现
  5. c++问题,EOF eofbit eof() 请问他们的区别是什么?
  6. codesmith使用的一个小问题
  7. HDU 1025 Constructing Roads In JGShining's Kingdom(DP+二分)
  8. Python可视化神器之pyecharts
  9. matlab函数小结----数组区
  10. winform自定义消息提示框定时自动关闭
  11. 数据挖掘案例:建立客户流失模型
  12. 时间片轮转调度算法模拟C语言
  13. 毕业设计资料python RCQ读者书库程序源码加文档
  14. python --爬虫 --下载小说
  15. ios 图片居中裁剪_iOS 自定义裁剪相册照片
  16. XMind 2021mac苹果手机电脑端 专业版思维导图
  17. Span 有多强大?玩转各种文字特效
  18. Django cms 教程六:集成博客/新闻模块
  19. linux redis自启动
  20. 3 、OpenCvSharp 图片转视频

热门文章

  1. 腾讯造「国产」机器狗,花式走梅花桩
  2. linux运行软件代码,Linux软件安装-详细源码安装过程
  3. 基于图像处理的路面裂缝检测系统设计与研究
  4. Vue——邂逅Vue
  5. 01-pandas时间类型dt类属性及方法
  6. 开发app需要什么技术?手机app制作方式、价格及性能盘点
  7. 网络编程基础【day10】:我是一个线程(四)
  8. java每五分钟执行一次_Cron表达式每N分钟运行一次
  9. FPGA的UART信息回显
  10. 立德教育净利润下滑四成:股价早已“腰斩”,拟并购一所高校