实验 4 图像复原与重建

news2024/11/23 22:10:12

目录

    • 一、实验目的
    • 二、实验例题
      • 1. 噪声模型
      • 2. 只存在噪声的滤波——空间滤波
      • 3. 退化函数建模
      • 4. 存在线性退化和噪声的滤波
        • (1) 逆滤波
        • (2) 最小均方误差(维纳)滤波
    • 附录

一、实验目的

  1. 了解一些常用随机噪声的生成方法。
  2. 掌握根据指定退化函数对图像进行退化的方法。
  3. 掌握当模糊图像只存在噪声时的几种滤波复原方法。
  4. 掌握当模糊图像同时存在线性退化和噪声时的几种滤波复原方法。

二、实验例题

1. 噪声模型

由函数 imnoise2(在文件夹“实验 4_实验材料_图像+程序”中已给出)可生成指定类型的大小为 M × N M \times N M×N的随机噪声数组 R R R,与 imnoise 函数输出一幅有噪声的图像不同的是,函数 imnoise2 生成噪声模式本身,其可生成的噪声类型如表 1 所示。
在这里插入图片描述

2. 只存在噪声的滤波——空间滤波

当一幅图像中唯一存在的退化是噪声时, 式 ( 1 ) (1) (1)和式 ( 2 ) (2) (2)变成式 ( 4 ) (4) (4)和式 ( 5 ) (5) (5)

g ( x ) = f ( x ) + η ( x , y ) (4) g(x)=f(x)+\eta(x,y)\tag4 g(x)=f(x)+η(x,y)(4)
G ( u , v ) = F ( u , v ) + N ( u , v ) (5) G(u,v)=F(u,v)+N(u,v)\tag5 G(u,v)=F(u,v)+N(u,v)(5)
表 2 列出了一些常用的空间滤波器,其中, S x y S_{xy} Sxy表示输入噪声图像 g g g m × n m\times n m×n子图像区域。 S 的下标表示子图像中心的坐标 ( x , y ) (x,y) (x,y) f ^ ( x , y ) \hat{f}(x, y) f^(x,y)( f 的一个估值)表示滤波器在这些坐标处的响应。
在这里插入图片描述
例 2 图 3 给出了两幅含噪声的电路图像,其中图 3(a)所示的是一幅被概率密度为 0.1的胡椒噪声污染的图像, 图 3(b)所示的是一幅被相同概率密度的盐粒噪声污染的图像。
请进行以下操作:
(1) 使用大小为 3 × 3 3\times 3 3×3、阶数为 1.5 的逆谐波均值滤波器分别对图 3(a)和图 3(b)进行滤波处理。
(2) 使用大小为 3 × 3 3\times 3 3×3、阶数为-1.5 的逆谐波均值滤波器分别对图 3(a)和图 3(b)进行滤波处理。

逆谐波均值滤波器 Contra-Harmonic Mean Filter其公式如下:
f ( x , y ) = ∑ ( x , y ) ∈ S x y g ( s , t ) Q + 1 ∑ ( x , y ) ∈ S x y g ( s , t ) Q f(x, y)=\frac{\sum_{(x, y) \in S_{x y}} g(s, t)^{Q+1}}{\sum_{(x, y) \in S_{x y}} g(s, t)^Q} f(x,y)=(x,y)Sxyg(s,t)Q(x,y)Sxyg(s,t)Q+1

其中Q称为滤波器的阶数,该滤波器可以用来消除椒盐噪声。但是需要不同同时处理盐粒噪声和胡椒噪声,当Q为正时,可以消除胡椒噪声;当Q为负时,消除盐粒噪声。当Q=0时,该滤波器退化为算术均值滤波器;Q=-1时,退化为谐波均值滤波器。

关于逆谐波滤波器的思考
f ^ ( x , y ) = ∑ g ( s , t ) Q g ( s , t ) ∑ g ( s , t ) Q = ∑ g ( s , t ) Q ∑ g ( s , t ) Q g ( s , t ) = ∑ g ( s , t ) Q A g ( s , t ) \hat{f}(x, y)=\sum \frac{g(s, t)^{Q} g(s, t)}{\sum g(s, t)^{Q}}=\sum \frac{g(s, t)^{Q}}{\sum g(s, t)^{Q}} g(s, t)=\sum \frac{g(s, t)^{Q}}{A} g(s, t) f^(x,y)=g(s,t)Qg(s,t)Qg(s,t)=g(s,t)Qg(s,t)Qg(s,t)=Ag(s,t)Qg(s,t)
上式可看做求 ( x , y ) (x,y) (x,y)邻域内所有 ( s , t ) (s,t) (s,t)点的加权平均值,权重的分母 ∑ ( s , t ) ∈ S x y g ( s , t ) Q \sum_{(s, t) \in S_{x y}} g(s, t)^{Q} (s,t)Sxyg(s,t)Q是个常数,只需考虑分子 g ( s , t ) Q g(s,t)^Q g(s,t)Q的大小。当 Q > 0 Q>0 Q>0时, g ( s , t ) g(s,t) g(s,t)越大, g ( s , t ) Q g(s,t)^Q g(s,t)Q值越大,对于 g ( s , t ) g(s,t) g(s,t)处的加权值结果也就越大,平滑处理后的结果接近较大值。此时,焦噪声被弱化,起到了滤除焦噪声的作用。

反之, Q < 0 Q<0 Q<0的时候, g ( s , t ) g(s,t) g(s,t)越大, g ( s , t ) Q g(s,t)^Q g(s,t)Q越小,对于 g ( s , t ) g(s,t) g(s,t)处的加权值结果也就越小,平稳处理后的结果越接近较小值。此时,盐噪声被弱化,起到了滤除了盐噪声的作用。

灰度图范围一般从0到255,白色为255,黑色为0,故黑白图片也称灰度图像。

(a) 被胡椒噪声污染的图像

(b) 被盐粒噪声污染的图像
图3 含噪声的电路图像

答:
(1)

close all; clear all; clc;
f = imread('例2.被概率密度为0.1的胡椒噪声污染的图像.tif');
m = 3; n = 3;
Q = 1.5;
f = im2double(f);
[M, N] = size(f);
%边界扩展
gp = zeros(M+2, N+2);
gp(2:M+1,2:N+1) = f;
gp(1,:) = gp(2,:); %用图像最外层的值扩展
gp(M+2,:) = gp(M+1,:);
gp(:,1) = gp(:,2);
gp(:,N+2) = gp(:,N+1);
%逆谐波均值滤波
g = zeros(M, N);
for x = 2:M+1
    for y = 2:N+1
    g_m = 0; g_d = 0;
        for i = -1:1
            for j = -1:1
                g_m = g_m + gp(x+i,y+j)^(Q+1);
                g_d = g_d + gp(x+i,y+j)^Q;
            end
        end
        g(x-1,y-1) = g_m/g_d;
    end
end
figure; imshow(g);

在这里插入图片描述

Q=1.5 滤波结果

可以看到胡椒噪声被很大程度抑制了。图片整体变得更加白了。

(2)

close all; clear all; clc;
f = imread('例 2.被概率密度为 0.1 的盐粒噪声污染的图像.tif');
m=3; n=3;
Q = 1.5;
f=im2double(f);
[M, N] = size(f);
%边界扩展
gp = zeros(M+2, N+2);
gp(2:M+1,2:N+1) = f;
gp(1,:) = gp(2,:); %用图像最外层的值扩展
gp(M+2,:) = gp(M+1,:);
gp(:,1) = gp(:,2);
gp(:,N+2) = gp(:,N+1);
%逆谐波均值滤波
g = zeros(M, N);
for x = 2:M+1
for y = 2:N+1
g_m = 0; g_d = 0;
for i = -1:1
for j = -1:1
分析:逆谐波均值滤波器适于处理脉冲噪声。当 Q 值为正时,该滤波器消除胡椒噪 声;当Q 值为负时,该滤波器消除盐粒噪声。但是,该滤波器不能同时消除这两种噪声。 在使用该滤波器时,必须知道噪声是暗噪声还是亮噪声,以便为 Q 选择正确的符号。由 本实验我们可以看出,若 Q 的符号选择错误,可能引起灾难性的后果。

3. 退化函数建模

在图像复原问题中,遇到的一个主要退化是图像模糊。由场景和传感器两者产生的模糊可以用空间域或频域的低通滤波器来建模。另一个重要的退化模型是在图像获取时传感器和场景之间的均匀线性运动而产生的图像模糊。我们可以用函数 fspecial 对图像模糊建模:
PSF = fspecial(‘motion’, len, theta);
调用 fspecial 将返回点扩散函数 PSF,它近似于摄像机线性移动 len 个像素的效果。参数theta 以度为单位,以时针方向对正水平轴度量。len的默认值是 9, theta 的默认值是 0,在水平方向上它对应于 9 个像素的移动。

使用函数 imfilter 来创建一个已知 PSF 的退化图像:
g = imfilter(f, PSF, ‘circular’);
其中, ‘circular’用来减少边界效应。然后通过添加适当的噪声来构造退化的图像模型:
g = g + noise;
其中, noise 是一幅与 g 大小相同的随机噪声图像。另外,还可根据指定的退化模型对图像进行退化处理。

例 3 图 4 所示的是一幅测试图像,请对其进行运动模糊。
在这里插入图片描述

图4 测试图像

答:
方法 1:结合函数 fspecial 和 imfilter

f = imread('例 3.测试图像.tif');
len = 100; theta = -45;
PSF = fspecial('motion', len, theta);
g = imfilter(f, PSF, 'circular');
figure; imshow(g);
imwrite(g,'运动模糊后图像.tif');

在这里插入图片描述

放大版原图

(a) 30度偏移

(b) -30度偏移

方法 2: 可根据退化函数 H ( u , v ) = T π ( u a + v b ) sin ⁡ [ π ( u a + v b ) ] e − j π ( u a + v b ) H(u, v)=\frac{T}{\pi(u a+v b)} \sin [\pi(u a+v b)] \mathrm{e}^{-\mathrm{j} \pi(u a+v b)} H(u,v)=π(ua+vb)Tsin[π(ua+vb)]ejπ(ua+vb)对图像进行运动模糊

4. 存在线性退化和噪声的滤波

(1) 逆滤波

最简单的图像复原方法是直接做逆滤波,用退化函数除退化图像的傅里叶变换来计算原始图像傅里叶变换的估计 F ^ ( u , v ) \hat{F}(u,v) F^(u,v),即
F ^ ( u , v ) = G ( u , v ) H ( u , v ) (6) \hat{F}(u,v)=\frac{G(u,v)}{H(u,v)}\tag6 F^(u,v)=H(u,v)G(u,v)(6)

(2) 最小均方误差(维纳)滤波

维纳滤波的目标是找到未污染图像 f f f的一个估计 f ^ \hat{f} f^,使它们之间的均方误差最小。图像的频率域估计如式 ( 7 ) (7) (7)所示:
F ^ ( u , v ) = [ 1 H ( u , v ) ∣ H ( u , v ) ∣ 2 ∣ H ( u , v ) ∣ 2 + S η ( u , v ) / S f ( u , v ) ] G ( u , v ) (7) \hat{F}(u, v)=\left[\frac{1}{H(u, v)} \frac{|H(u, v)|^{2}}{|H(u, v)|^{2}+S_{\eta}(u, v) / S_{f}(u, v)}\right] G(u, v)\tag7 F^(u,v)=[H(u,v)1H(u,v)2+Sη(u,v)/Sf(u,v)H(u,v)2]G(u,v)(7)
其中, H ( u , v ) H(u,v) H(u,v)是退化函数, S η ( u , v ) = ∣ N ( u , v ) ∣ 2 S_{\eta}(u, v)=|N(u, v)|^{2} Sη(u,v)=N(u,v)2是噪声的功率谱, S f ( u , v ) = ∣ F ( u , v ) ∣ 2 S_{f}(u, v)=|F(u, v)|^{2} Sf(u,v)=F(u,v)2是未退化图像的功率谱。注意,若噪声为 0,则噪声功率谱消失,维纳滤波可简化为逆滤波。当我们处理白噪声时,谱 ∣ N ( u , v ) ∣ 2 |N(u, v)|^{2} N(u,v)2是一个常数, 式 ( 7 ) (7) (7)可简化为:

F ^ ( u , v ) = [ 1 H ( u , v ) ∣ H ( u , v ) ∣ 2 ∣ H ( u , v ) ∣ 2 + K ] G ( u , v ) (8) \hat{F}(u, v)=\left[\frac{1}{H(u, v)} \frac{|H(u, v)|^{2}}{|H(u, v)|^{2}+K}\right] G(u, v)\tag8 F^(u,v)=[H(u,v)1H(u,v)2+KH(u,v)2]G(u,v)(8)
其中, K K K是一个加到 ∣ H ( u , v ) ∣ 2 |H(u, v)|^{2} H(u,v)2的所有项上的特定常数。

疑惑: S f ( u , v ) S_{f}(u, v) Sf(u,v)是如何确定的?同时,仅保证谱 ∣ N ( u , v ) ∣ 2 |N(u, v)|^{2} N(u,v)2是一个常数,未退化图像的功率谱 ∣ F ( u , v ) ∣ 2 |F(u, v)|^{2} F(u,v)2也会是一个常数吗?

附录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/158286.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

十一、Gtk4-Instance Initialization and destruction

文本文件编辑器(tfe)的新版本将在本节和以下四节中编写。它是tfe5。与之前的版本相比&#xff0c;有很多变化。它们位于两个目录中&#xff0c;src/tfe5和src/tfetextview。 1 封装 我们将C源文件分为两部分。但就封装而言&#xff0c;这还不够。 tfe.c包含除Tfe TextView之…

【Linux】线程控制

目录&#x1f308;前言&#x1f338;1、Linux线程控制&#x1f361;1.1、创建线程(pthread_create)&#x1f362;1.2、通过指令查看线程PID和LWP&#x1f367;1.3、获取线程ID(pthread_self)&#x1f368;1.4、线程终止(pthread_exit/cancel)&#x1f368;1.5、线程等待(pthrea…

一文读懂PCB阻焊工艺

PCB阻焊油墨根据固化方式&#xff0c;阻焊油墨有感光显影型的油墨&#xff0c;有热固化的热固油墨&#xff0c;还有UV光固化的UV油墨。而根据板材分类&#xff0c;又有PCB硬板阻焊油墨&#xff0c;FPC软板阻焊油墨&#xff0c;还有铝基板阻焊油墨&#xff0c;铝基板油墨也可以用…

力扣算法(Java实现)—数组入门(11题)

文章目录1.删除排序数组中的重复项2.买卖股票的最佳时机 II3.旋转数组4.存在重复元素5.找出只出现一次的元素6.两个数组的交集7.移动零8.加一9.两数之和10.有效的数独11.旋转图像&#x1f48e;&#x1f48e;&#x1f48e;&#x1f48e;&#x1f48e; 更多资源链接&#xff0c;欢…

【手写 Vue2.x 源码】第十八篇 - 根据 render 函数,生成 vnode

一&#xff0c;前言 上篇&#xff0c;介绍了render 函数的生成&#xff0c;主要涉及以下两点&#xff1a; 使用 with 对生成的 code 进行一次包装将包装后的完整 code 字符串&#xff0c;通过 new Function 输出为 render 函数 本篇&#xff0c;根据 render 函数&#xff0c…

linux系统中QT里面的视频播放器的实现方法

大家好&#xff0c;今天主要和大家聊一聊&#xff0c;如何使用QT中视频播放器的方法。 目录 第一&#xff1a;视频播放器基本简介 第二&#xff1a;视频播放器头文件说明 第三&#xff1a;源文件的具体实现方法 第四&#xff1a;运行效果显示 第一&#xff1a;视频播放器基本…

ADS振铃仿真

目录 无振铃时的原理图 无振铃时的Vout和VL输出波形 ​LineCalc对微带线阻抗的计算结果 将微带线线宽Width统一由116改为130 将微带线线宽Width统一由116改为80 将微带线TL9线宽由116改为300 将微带线TL9线宽由116改为50 本文介绍了微带线线宽变化时100MHz信号的反射现象…

2023 年 15 大测试自动化趋势

在过去&#xff0c;软件测试只是为了发现软件产品中的错误。目标是——提高软件质量。但如今&#xff0c;软件测试的范围已经扩大。在软件测试方面&#xff0c;自动化测试一直走在前列。按照最新的测试自动化趋势&#xff0c;软件测试行业有望比过去十年发展得更快。 根据 Mar…

Java面向对象综合训练

Java面向对象综合训练一、文字版格斗游戏Role类测试类输出结果二、对象数组练习对象数组1商品类测试类输出结果对象数组2汽车类测试类输出结果对象数组3手机类测试类输出结果对象数组4女朋友类测试类输出结果对象数组5学生类测试类输出结果一、文字版格斗游戏 Role类 import j…

去掉 域名后面的 /#/ vue-router 和 hbuilder发布 web项目和h5项目

1. vue-router vue-router默认的路由模式是hash&#xff0c;我们要去掉url中的#需要将路由模式切换为history const router new VueRouter({base: test, // 如果项目项目在 域名 根目录下&#xff0c;则去掉这行mode: history, // 路由模式... })这样子&#xff0c;url中的#…

为什么ERP和项目管理的集成是必要的?

在一个企业中&#xff0c;传统的责任分工意味着会计人员看管资金和维持财务标准&#xff0c;而职能经理分配人力资源和维持技术标准。项目经理指导分配的资金和其他资源&#xff0c;同时努力实现项目目标。每个学科都有自己的业务规则&#xff0c;自己的做法&#xff0c;自己的…

C++ | 左值、右值、将亡值和引用的概念 | 聊聊我对它们的深入理解

文章目录前言左右值的辨析一个特殊的问题将亡值引用的深刻理解前言 这篇文章是我在探究完美转发这个语法点时&#xff0c;引发的相关问题思考&#xff0c;为了使自己的理解更深刻&#xff0c;故写下这篇博客 左右值的辨析 首先需要明白两个概念&#xff1a;类型&#xff08;…

1577_AURIX_TC275_MTU中检测控制相关寄存器

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 开篇介绍的功能室之前看过很多次的一个握手的功能。快速行以及快速列模式的测试中&#xff0c;这个行列其实是对应的存储的bit阵列信息。一个对应相应的字&#xff0c;另一个则对应bit序列…

【Linux】进程创建、终止、等待、替换、shell派生子进程的理解…

柴犬&#xff1a; 你好啊&#xff0c;屏幕前的大帅哥or大美女&#xff0c;和我一起享受美好的今天叭&#x1f603;&#x1f603;&#x1f603; 文章目录一、进程创建1.调用fork之后&#xff0c;内核都做了什么&#xff1f;2.如何理解fork函数有两个返回值&#xff1f;3.如何理…

(短信服务)java SpringBoot 阿里云短信功能实现发送手机验证码

一.阿里云准备工作 1.阿里云短信服务-注册账号 阿里云官网: https://www.aliyun.com/ 点击官网首页注册按钮。 2.阿里云短信服务-设置短信签名&#xff08;阿里云提供测试的签名&#xff0c;暂时可以跳过&#xff09; 注册成功后&#xff0c;点击登录按钮进行登录。登录后…

简单方式调用WebService服务

好久没有进行过WebService开发了&#xff0c;由于项目需要&#xff0c;重拾WebService&#xff0c;记录一下简单的服务调用方法。拿到需求&#xff0c;仅半页word&#xff0c;其他的就没有了&#xff0c;为了快速开发&#xff0c;尝试过使用插件逆向生成调用的一大堆类&#xf…

AWVS安装与激活

AWVS安装与激活 1.AWVS简介 AWVS&#xff08;Acunetix Web Vulnerability Scanner&#xff09;是一款知名的网络漏洞扫描工具&#xff0c;通过网络爬虫测试网站安全&#xff0c;检测流行的Web应用攻击&#xff0c;如跨站脚本、sql 注入等。据统计&#xff0c;75% 的互联网攻击…

pmp备考全攻略

我这里分享一下我备考的经验&#xff0c;如何对大家有帮助也可以稍微给点支持&#xff0c;让更多人了解&#xff01; 一&#xff0c;我的pmp备考经验 1.一阶段&#xff1a;铺底&#xff0c;花费时间1.5周左右 主要是熟悉考试框架和内容&#xff0c;通过看网盘资料里的章节重…

vue3+ts实现自定义按钮导航

效果图 点击对应按钮&#xff0c;相应按钮被激活&#xff0c;背景平移至激活按钮&#xff0c;字体高亮&#xff0c;其余按钮重置&#xff0c;由于ele没有类似tab&#xff0c;就简单记录下。 实现 <template><div class"tab_wrapper"><spanv-for&q…

这些技巧你值得学会

技巧一&#xff1a;多图合并为PDF文件 处理合并多份PDF文件外&#xff0c;使用PS的【PDF演示文稿】工具&#xff0c;也能一同将多张图片合并成PDF文档&#xff01;通过合并的方式&#xff0c;不但能够批量归纳汇总图片&#xff0c;而且还能根据自身需求&#xff0c;将图片与PD…