数字图像处理实验(五)|图像复原{逆滤波和伪逆滤波、维纳滤波deconvwnr、大气湍流扰动模型、运动模糊处理fspecial}(附matlab实验代码和截图)

article/2025/9/21 18:38:42

文章目录

  • 一、实验目的
  • 二、实验仪器
  • 三、实验原理
  • 四、实验内容
    • 1.逆滤波:选择MATLAB文件夹中的foggy图像作为实验图像。
      • (1)生成退化函数:
      • (2)复原
        • (a)直接逆滤波
        • (b)修正函数逆滤波
    • 2.维纳滤波复原
  • 五、撰写实验报告
  • 六、实验代码
  • 七、实验截图

一、实验目的

1 了解图像复原的意义及主要退化模型的建立;
2 掌握直接逆滤波的原理及缺点,并进行完善;
3 维纳滤波两种语法的图像复原方法及应用;
4 通过本实验掌握利用MATLAB编程实现数字图像的复原方法。

二、实验仪器

安装有MATLAB工具的计算机或个人笔记本

三、实验原理

图像的退化有多种原因,包括光学系统中的衍射、传感器非线性畸变、摄影胶片的非线性、大气湍流的扰动效应、图像运动造成的模糊、几何畸变等等。各种退化图像的复原都可归结为一种过程:把退化模型化,并且采用相反的过程进行处理,以便恢复出原图像。
1.退化模型的建立:
退化过程被建模为一个退化函数和一个加性噪声项。
在这里插入图片描述

G(u,v)=F(u,v)*H(u,v)+N(u,v)
(1)大气湍流的模型:
在这里插入图片描述

(2)运动模糊模型:
H(u,v)=T/(π(ua+vb)) sin⁡[π(ua+vb)]e^(-jπ(ua+vb))
运动模糊退化生成函数:
PSF=fspecial(‘motion’,len,theta);
其中len为移动像素个数,theta为移动方向。
2.复原方法:
(1)直接逆滤波(反向滤波法):
a. 无噪声情况:
根据
在这里插入图片描述
可得:
在这里插入图片描述

对上式进行逆变换到空间域即得到复原图像。
无噪声直接逆滤波步骤:
对退化图像(预先生成)g(x,y)进行二维傅立叶变换,得到G(u,v)。
计算系统冲激响应h(x,y)的二维傅立叶变换,求得H(u,v);
计算F(u,v);
计算F(u,v)的傅立叶反变换,求得f(x,y)。
b. 有噪声情况:
在这里插入图片描述
病态性质:
(a) H(u,v)= 0:无法确定F(u,v)
(b) H(u,v)0:放大噪声
放大噪声的原因: H(x,y)的幅值随着u,v离原点的距离的增加而迅速下降,而噪声的幅值变化则较平缓。
修正:
在这里插入图片描述(2)维纳滤波
维纳滤波器:
在这里插入图片描述

F ̂(u,v)=(H^* (u,v))/(|H(u,v)|^2+(S_n (u,v))/(S_f (u,v) )) G(u,v)
H*(u,v)是系统传递函数的复共轭;
Sn(u,v)是噪声功率谱:
Sf(u,v)是输入图像的功率谱:
维纳滤波函数:
deconvwnr
fr=deconvwnr(g,PSF); %噪信比为0
fr=deconvwnr(g,PSF,NSPR); %噪信比为常量或数组,标量输入
噪信比的算法:
(1)通过功率谱计算
SN=abs(fft2(noise)).^2;
SNA=sum(SN(: ))/numel (noise);
SF=abs(fft2(f)).^2;
SFA=sum(SF(: ))/numel(f);
NSPR=SNA/SFA;
(2)通过方差计算:方差函数:var
varn=var(noise(: )); 计算噪声方差
varf=var(f(: )); 计算信号方差
NSPR=varn/varf;

四、实验内容

1.逆滤波:选择MATLAB文件夹中的foggy图像作为实验图像。

分别用直接逆滤波法和伪逆滤波法去除大气湍流造成的图像退化。
具体步骤:
直接逆滤波:
读取图像----生成退化函数----生成退化图像(原图像频谱点乘退化函数矩阵)----逆运算(退化图像频谱点除退化函数矩阵)
伪逆滤波:
读取图像----生成退化函数----生成退化图像(原图像频谱点乘退化函数矩阵)----选取合适阈值,对退化矩阵进行修正得到修正后的退化矩阵----逆运算(退化图像频谱点除退化函数矩阵)
相关算法:

(1)生成退化函数:

大气湍流的数学模型为:
在这里插入图片描述

H(u,v)=exp(-0.0025* ( (u-M/2).2+(v-N/2).2).^(5/6) );
G(u,v)=F.*H

(2)复原

(a)直接逆滤波

F=G./H;
按照此方法编程运行后能否复原图像?试分析原因并撰写实验报告。
此方法复原出的结果较差,不能复原出原图像。不能复原出原图像的原因是对于那些里原点较远的像素点,会导致光传递函数趋近于0,从而放大噪声

(b)修正函数逆滤波

在这里插入图片描述

for u=1:M
for v=1:N
if sqrt((u-M/2).2+(v-N/2).2)<threshold
F=G./(H(u,v)+eps);
end
end
end
此段程序运行后能否复原图像?效果如何?试分析原因并撰写实验报告。
能复原出原图像,效果不错,因为我们通过阈值修正了光传递函数,从而使离原点较远的像素点设置为1,从而避免放大噪声的现象出现

2.维纳滤波复原

选择LENA图像或利用checkerboard生成棋盘图像。
(1)对测试图像用fspecial函数生成运动造成的退化图像, 用维纳滤波法进行图像复原。
(2)对(1)中的退化图像加入高斯噪声,用维纳滤波的两种语法形式(不加噪信比和加入噪信比)进行复原并显示各图像。噪信比的计算见实验原理部分介绍。观察两种复原结果是否有区别,试分析原因并写入实验报告。
附:
实验所需相关
测试图像:棋盘图像;lena或cameraman图像
常用函数:imread; rgb2gray; im2double; fspecial; imnoise; imfilter; subplot; imshow
本实验新函数:
checkerboard(N); N代表每一个方块的每一边所包含的像素。
deconvwnr(I,PSF)%维纳滤波函数,其中I为处理图像,PSF为点扩散函数亦即图像退化函数
deconvwnr(I,PSF,NSPR)%维纳滤波函数,其中I为处理图像,PSF为点扩散函数,NSPR为噪信功率比。

五、撰写实验报告

报告需包含:程序、图像、分析评价。

六、实验代码

%% 
close all
I = imread('foggysf1.jpg');
I = imcrop(I,[0,1299,512,511]);
I = rgb2gray(I);
imwrite(I,'xsa.png');%%
I = imread('xsa.png');
I = im2double(I);F = fft2(I);
F = fftshift(F);
[M,N] = size(I);
for i = 1:Mfor j = 1:NH(i,j) = exp(-0.0025* ( (i-M/2).^2+(j-N/2).^2).^(5/6) );end
end
G = F.*H;
g = ifftshift(G);
g = ifft2(g);
% imshow(g,[])
F1 = G./H;
f1 = ifft2(F1);
% figure
% imshow(f1)
subplot(2,2,1),imshow(I),title('原图像')
subplot(2,2,2),imshow(g,[]),title('运动退化图像')
subplot(2,2,3),imshow(abs(f1)),title('直接逆滤波')for i = 1:Mfor j = 1:Nif (i^2 + j^2) > 10H(i,j) = 1;endend
end
F1 = G./H;
f1 = ifft2(F1);
subplot(2,2,4),imshow(abs(f1)),title('修正后直接逆滤波')
%% 
% 1
I = imread('C:\Users\DELL\Desktop\lena.jpg');
A = fspecial('motion',7,45);
K = imfilter(I,A,'circular');
M = deconvwnr(K,A);
subplot(1,3,1);imshow(I);title('原图像')
subplot(1,3,2);imshow(K);title('退化图像')
subplot(1,3,3);imshow(M);title('滤波图像')
% (2)
I = imread('C:\Users\DELL\Desktop\lena.jpg');
A = fspecial('motion',15,45);
K = imfilter(I,A,'circular');
noise = imnoise(K,'gaussian',0,0.01);
SN=abs(fft2(noise)).^2;
SNA=sum(SN(:))/numel (noise);
SF=abs(fft2(I)).^2;
SFA=sum(SF(:))/numel(I);
NSPR=SNA/SFA;
M = deconvwnr(noise,A,NSPR);
subplot(131);imshow(I);
subplot(132);imshow(noise);
subplot(133);imshow(M);

七、实验截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/g5DTvry0.shtml

相关文章

杂识-HSV与伪彩图

HVS HSV(Hue, Saturation&#xff0c;Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间&#xff0c;也称六角锥体模型(Hexcone Model)。 这个模型中颜色的参数分别是&#xff1a;色调&#xff08;H&#xff09;&#xff0c;饱和度&#xff08;S&#xff09;…

Josh 的学习笔记之数字通信(Part 4——带通调制和解调)

文章目录 1. 为什么需要调制2. 数字带通调制技术2.1 正弦信号的相量表示2.2 相移键控2.3 频移键控2.4 幅移键控2.5 振幅相位联合键控2.6 波形振幅系数 3. 高斯噪声背景下的信号检测3.1 判决区域3.2 相关接收机3.2.1 二进制判决门限 4. 相干检测4.1 PSK 的相干检测4.2 采样匹配滤…

数字成像系统概述

1. 色彩科学 1.1 光源 &#xff08;1&#xff09;光源的度量 Luminance: 描述发射或者反射多少光&#xff0c;单位nit或者cd/m^2 Illuminance: 描述落在一个表面多少光&#xff0c;单位lux 比如 Bright light约为111000lux&#xff0c;sunrise/sunset约为400lux&#xff0c;m…

数字图像期末复习

目录 绪论数字图像基础图像感知和获取简单的图像形成模型 图像的取样和量化数字图像表示空间和灰度分辨率 像素间的一些基本关系相邻像素邻接性、连通性、区域和边界 灰度变换与空间滤波基础知识一些基本的灰度变换函数图像反转对数变换幂次变换分段线性变换函数 直方图处理离散…

数字图像处理知识点

数字图像处理知识点 目录 数字图像处理知识点 第一章 概述 1.1数字图像处理相关概念 1.2数字图像处理系统流程图&#xff1a; 1.3 数字图像处理主要研究内容 第二章 数字图像处理基础 2.1图像的数字化及表达 2.2图像的采样和量化 2.3图像的分类 第三章 图像的基本运算…

数字图像处理系统

一、开发环境 以Windows10为平台&#xff0c;以MATLAB R2016a为开发工具&#xff0c;结合GUIDE开发。 二、系统主要功能 &#xff08;1&#xff09;文件操作 实现打开一幅图片&#xff0c;完成对图像数据的读取、显示和存储、清空。 &#xff08;2&#xff09;几何变换 图像的几…

神经网络alpha阶逆系统

逆系统方法的本质上是用反馈线性化方法来研究控制系统设计理论的一种途径&#xff0c;是一种比较一般性的方法。逆系统方法的基本思想是&#xff1a;首先&#xff0c;利用对象的逆系统构成一种可用反馈方法实现的Q阶积分逆系统&#xff0c;将对象补偿为具有线性传递关系的系统&…

数字水印的攻击类型

数字水印的攻击类型 引言 数字水印技术作为信息隐藏技术的一种&#xff0c;不可见性和鲁棒性是它的主要特点。通常在水印嵌入时我们需要来确定水印的嵌入量&#xff0c;以此来平衡不可见性和可见性之间的关系。 方法 对于不可见性&#xff0c;我们可以直观的判断出来。但对于鲁…

数字图像处理复习

简答题&#xff1a;8’*3 1、图像的数字化过程&#xff1a;采样&#xff0c;分色&#xff0c;量化&#xff0c;编码相关概念。 采样&#xff1a;采样的实质就是用多少点来描述一幅图像&#xff0c;采样结果质量的高低就是图像分辨率&#xff0c;连续图像的空间样本实际上就是用…

MATLAB数字水印实现

目 录 摘 要 2 ABSTRACT 3 1.数字水印技术概述 4 1.1 数字水印技术提出的背景 4 1.2 数字水印的基本特点 4 1.3 数字水印的应用 5 1.MATLAB软件的介绍 7 2.1 MATLAB研究数字水印的优点 7 2.2 MATLAB函数介绍 8 3.傅立叶域水印理论基础 10 3.1 傅立叶变换简述 10 3.1.1 一维离散…

数字图像处理基础知识(自救指南)

概念 本部分多来自课件&#xff0c;见水印 数字图像处理的目的 提高图像的视感质量&#xff0c;以达到赏心悦目的目的。提取图像中所包含的某些特征或特殊信息&#xff0c;主要用于计算机分析&#xff0c;经常用作模式识别、计算机视觉的预处理。对图像数据进行变换、编码和压…

通过FPGA计算矩阵的伪逆pinv

1.问题描述: 一个12*4的矩阵。 2.部分程序: 然后我们要定义个函数,用来计算复数转置的。 然后是复数乘法器, 这个过程中,我们暂时还没截位,所以计算结果会和matlab一样,后面的会有大量的位宽截取,所以计算结果需要换算才行。 然后,中间计算过程中,涉及到精度要求的…

巨正则系综处理理想气体

经典统计中的巨正则系综需要对粒子数求和 使用巨正则系综计算理想气体的好处是方便求化学势&#xff0c;求化学势是用粒子平均数来求

系综的实现方式(nve、nvt、npt)

一、NVE系综 更新位置和速度&#xff0c;v和e恒定。 二、NVT系综 几种实现的方式&#xff1a; 如&#xff1a; fix 1 all nve #更新位置和速度&#xff0c;e和V保持不变。若只有这个命令&#xff0c;就只nve系综&#xff0c;如果和控温命令一起&#xff0c;就是nvt系综。fix 2 …

新手入门 | 跑分子动力学必须要知道的5个点

更多精彩请关注公众号&#xff1a;分子动力学 一、基 本 介 绍 随着计算机的软硬件和计算技术的发展&#xff0c;利用计算机对物质的微观结构和运动进行数值模拟计算得到了迅速发展&#xff0c;并在此基础上发展了用数值运算统计求和的方法&#xff1a;分子动力学 (MD) 方法和…

lammps多孔结构

原创 公众号LAMMPS交流站 点击上方蓝字关注我们 大家好&#xff0c;我是YJ学长&#xff0c;本文的模型是小编在lammps模拟Ni的熔化过程中偶然生成了一帧多孔结构&#xff0c;小编觉得图挺好看的&#xff0c;因此做一期推送共同来讨论这一现象。 因能力有限&#xff0c;这种…

量子计算入门学习笔记 (八—— 密度算符 )

hello&#xff0c;大家好&#xff0c;如果您是第一次观看我的博客&#xff0c;如果您也是和我一样刚入门量子力学或是量子计算相关的学习&#xff0c;纠结于量子计算的抽象与晦涩难懂&#xff0c;那么本专栏&#xff08;量子计算&#xff09;一定是您的不二之选&#xff0c;学海…

lammps npt系综iso和aniso控压对比

大家好&#xff0c;我是小马老师。 本文讲解lammps基础命令fix npt设置。 关于系综的设置&#xff0c;前面已经介绍过多次&#xff0c;但在咨询中发现&#xff0c;对于大部分初学者来说&#xff0c;对于系综选择和设置还是有些困惑。 fix npt命令名称就可以看出&#xff0c;它的…