实验三、图像复原

1.  实验目的

(1) 理解退化模型。

(2) 掌握常用的图像复原方法。

2.  实验内

(1) 模拟噪声的行为和影响的能力是图像复原的核心。 示例 1 :使用 imnoise 添加噪声。

J = imnoise(I,'gaussian')  将方差为 0.01  的零均值高斯白噪声添加到灰度图I J = imnoise(I,'gaussian',m)  添加高斯白噪声,均值为 m ,方差为 0.01

J = imnoise(I,'gaussian',m,var_gauss)  添加高斯白噪声,均值为 m ,方差为 var_gauss J = imnoise(I,'localvar',var_local)  添加局部方差为 var_local  的零均值高斯白噪声。

J = imnoise(I,'localvar',intensity_map,var_local)  添加零均值高斯白噪声。噪声的局部方差 var_local I 中图像强度值的函数。图像强度值到噪声方差的映射由向量 intensity_map 指定。

J = imnoise(I,'poisson')  数据中生成泊松噪声,而不是向数据中添加人为噪声。有关详 细信息,请参阅算法。

J = imnoise(I,'salt & pepper')  添加椒盐噪声,默认噪声密度为 0.05。这会影响大约 5%   像素。J = imnoise(I,'salt & pepper',d)  添加椒盐噪声,其中 d 是噪声密度。这会影响 大约 d*numel(I)  个像素。

J = imnoise(I,'speckle')使用方程 J = I+n*I  添加乘性噪声,其中 n 是均值为 0、方差为 0.05 的均匀布随机噪声。

J = imnoise(I,'speckle',var_speckle)  添加方差为 var_speckle  的乘性噪声。

示例 2 :使用指定的分布产生空间随机噪

均匀噪声实例z = a + (b a) xU(0, 1)

 

clear

clc

a=2;

b=5;

noise= a + (b - a) * rand(100, 100) ;

blackIm=zeros( 100, 100);

noisedIm=noise + blackIm;

subplot(1,2, 1);histogram(noisedIm);

subplot(1,2,2);imshow(noisedIm,[])

示例 3 :自编程实现指定噪声与周期噪声 (见资料 imnoise2.m, imnoise3.m  文件)

例:利用椒盐噪声污染图像

[M,N]=size(f);

R=imnoise2('salt & pepper',M,N,0. 1,0);

gp=f;

gp(R==0)=0;

subplot(1,2, 1),imshow(f);

subplot(1,2,2),imshow(gp);

%图像是被概率只有 0. 1 的胡椒噪声污染的 uint8 类图像,图像上出现点 (胡椒状)

[M,N]=size(f);

R=imnoise2('salt & pepper',M,N,0,0. 1);

gp=f;

gp(R==1)=255;

figure

subplot(121),imshow(f);

subplot(122),imshow(gp);

%图像是被概率只有 0. 1 的盐粒噪声污染的 uint8 类图像,图像上出现点 (盐粒状)

意,由椒盐噪声成的噪声数组有三个值:对应于胡椒噪声的 0 ,对应于盐粒噪 1 ,以及对应于噪声的 0.5。为了使这个数组有,还需要对他进步的处理。椒 噪声污染图像时,需要找到 R 中所有的 0 值坐标,把相应原图像的坐标位置置为最 灰度,找到 R 中值为 1 的坐标,把相应原图像的坐标位置置为最灰度值。

例:利用周期噪声污染图像

 

C=[0 64;0 128;32 32;64 0;128 0;-32 32];

[r,R,S]=imnoise3(512,512,C);

subplot(3,2, 1),imshow(S,[]),title('规定脉冲的')

subplot(3,2,2),imshow(r,[]),title('空域中相应的正弦噪声模型')

C=[0 32;0 64;16 16;32 0;64 0;-16 16];

[r,R,S]=imnoise3(512,512,C);

subplot(3,2,3),imshow(S,[])

subplot(3,2,4),imshow(r,[])

C=[6,32;-2 2];

[r,R,S]=imnoise3(512,512,C);

subplot(3,2,5),imshow(r,[])

A=[1,5];

[r,R,S]=imnoise3(512,512,C,A);

subplot(3,2,6),imshow(r,[])

注意:像出现周期噪声通常源于电,电机的扰,通常通过在频域滤波来处理。

周期噪声的噪声模型是个离散的维正弦波,程为:

r (x, y ) = Asin 【2xp0 (x + Bx )/ M + 2xv0 (y + By ) / N】 

其中,x=0, 1,2 M-1 y=0, 1,2, … ,N- 1 A 是振幅,u0 v0 分别确定了关于 x 轴和 y 的正弦频率。Bx By 分别是关于原点的相移。定义M 函数接受任意数量的脉 位置 (频率坐标),每个脉冲位置都有自己的振幅,频率和相移参数。该函数还能够

输出各个正弦波之和的傅叶变换以及谱。

C 是具有 K 对频率 K×2 矩阵。定义频率中脉冲位置的域坐标(u, v) 。这些位置相对于 频率矩形中心在(floor(M/2) + 1, floor(N/2) + 1) 。脉冲位置被指定为相对于中心的增量。 例如,如果 M = N = 512 ,则中心位于 (257, 257) 。要指定 (280, 300)  处的脉冲,我们 指定对 (23, 43);即 257 + 23 = 280 257 + 43 = 300 。每个脉冲只需要一对坐

(2) 空域滤

help imfilter

imfilter -  多维图像的 N  维滤波

MATLAB  函数 使用多维滤波器 h  对多维数组 A 进行滤波,并在 B  中返回 果。

B = imfilter(A,h)

B = imfilter(A,h,options,...)

h = fspecial(type)

type -  滤波器的类型

'average' | 'disk' | 'gaussian' | 'laplacian' | 'log' | 'motion' | 'prewitt' | 'sobel'

help medfilt2

medfilt2 -  二维中位数滤波

MATLAB  函数 对图像 I  执行二维中位数滤波。每个输出像素包含输入图像中 应像素周围 3×3  邻域的中位数值。

J = medfilt2(I)

J = medfilt2(I,[m n])

J = medfilt2(___,padopt)

实验一

1. 1 至少 2 种不同类型的噪声,并绘制原图像、加噪后图像及对应直方图 图形窗口中[subplot(m,n,p)]

1.2 有椒盐噪声图像进行 5×5 方形窗口中值滤波。

附加内容: 自编程实现均值、中值、 自适应中值滤波器

(2) 幅退化的图像可以近似地用方g=Hf+n ,其中 g 为图像,H 为变称为点扩散函数 (PSF),f 为原始的真实图像,n 为附加噪声, 它在像捕获过程中产并且使图像质量变坏。其中,PSF 个很重要的因素, 值直接影响到恢复后图像的质量。

MATLAB具箱4 个图像恢复函数。这 4 个函数都以PSF 和模糊 图像作为主要变量。deconvwnr 函数使维纳滤波对图像恢复,求取最小二deconvreg 数实现约束去卷积,求取有约束的最小二乘解,可以设置对输出图 像的约束。deconvlucy 函数实现了个加速衰减的 Lucy-Richardson 算法。该 优化技术和泊松统计量进多次迭代。使该函数,不需要提供有关模糊 中附加噪声的信息。deconvblind 函数使的是盲去卷积算法,它在不知道 PSF 情况下进恢复。调deconvblind 函数时,将 PSF 的初值作为个变量 传递。该函数除了返回个修复后的图像以外,还返回个修复后的 PSF

 

示例:使用维纳滤波恢复图

J=deconvwnr(I,psf,nsr)使用 Wiener 滤波算法对图像 I 进行反卷积,从而返回去模糊后的 图像 J psf I 进行卷积的点扩散函数(PSF) nsr 是加性噪声的噪信功率比。在估计图 像与真实图像之间的最小均方误差意义上,该算法是最优的。

J = deconvwnr(I,psf,ncorr,icorr)对图像I 进行反卷积,其中ncorr 是噪声的自相关函数,icorr 是原始图像的自相关函数

J = deconvwnr(I,psf)使用 Wiener 滤波算法对图像 I 进行反卷积,无估计噪声。在不含 情况下,Wiener 滤波等效于理想的逆滤波。

%读取图片到工作区

I = im2double(imread('cameraman.tif'));

imshow(I);

title('Original Image (courtesy of MIT)');

%模拟一个运动模糊

LEN = 21;

THETA = 11;

PSF = fspecial('motion', LEN, THETA);

blurred = imfilter(I, PSF, 'conv', 'circular');

figure, imshow(blurred)

%模拟加性噪声

noise_mean = 0;

noise_var = 0.0001;

blurred_noisy = imnoise(blurred, 'gaussian', noise_mean, noise_var);

figure, imshow(blurred_noisy)

title('Simulate Blur and Noise')

%假定噪声为 0 恢复图像

estimated_nsr = 0;

wnr2 = deconvwnr(blurred_noisy, PSF, estimated_nsr);

figure, imshow(wnr2)

title('Restoration of Blurred, Noisy Image Using NSR = 0')

%使用最佳噪声/信号功率比恢复图

estimated_nsr = noise_var / var(I(:));

wnr3 = deconvwnr(blurred_noisy, PSF, estimated_nsr);

figure, imshow(wnr3)

title('Restoration of Blurred, Noisy Image Using Estimated NSR');

实验二(选做其一)

2. 1  选择一幅晰的灰度图像,对该图像进行模糊化处理,然后分别采用逆滤波、 维纳滤波和约束最小二乘方滤波对模糊图像进行复原,比较各种图像复原方法 原效果。

2.2  选择一幅清晰的灰度图像,对该图像进行模糊化处理并加入不同强度的高斯 噪声,然后分别采用逆滤波、维纳滤波和约束最小二乘方滤波对退化图像进行 比较各种图像复原方法的复原效果。

加内容: 自编程实现不同截至频率的逆滤波并比较其复原效果。

Matlab help 图像去模糊_长笛人倚楼Gloria_新浪博客 (sina.com.cn)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

最近ChatGPT封号太严重了,这里是解封攻略步骤(建议收藏)

这个周末,先是意大利暂时封杀ChatGPT,限制OpenAI处理本国用户信息。 接着,据韩国媒体报道,三星导入ChatGPT不到20天,便曝出机密资料外泄。 还没结束,又有大量网友发现ChatGPT目前停止注册,开始…

​力扣解法汇总1026. 节点与其祖先之间的最大差值

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值…

Samba共享

关闭selinux跟防火墙 setenforce 0 systemctl stop firewalld 安装samba以及客户端 yum install samba samba-client -y 创建共享目录 mkdir -p /data/share1 mkdir -p /data/public 添加samba用户并配置权限 useradd zsuser smbpasswd -a zsuser 修改配置文件并重启服…

【Hello Linux】信号量

作者:小萌新 专栏:Linux 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:简单介绍linux中信号量的概念 信号量信号量的概念信号量的使用信号量函数二元信号量模拟互斥功能基于环形队列的生产者消费者模型空间资…

23-Ajax-axios

一、原生Ajax <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width…

中科大ChatGPT学术镜像小白部署教程,全民都可以拥抱AI

docker…不会用…python不会用…服务器默认python版本3.6不会升级…代理也不会配置…各种命令不会用… 那么下面就是最简单办法&#xff0c;点点点即可【希望有帮助&#xff1f;】 文章目录一、体验镜像地址二、 基本配置2.1 config.py文件2.2 main.py文件三、下载项目四、项目…

【C++】哈希表:开散列和闭散列

&#x1f4dd; 个人主页 &#xff1a;超人不会飞)&#x1f4d1; 本文收录专栏&#xff1a;《C的修行之路》&#x1f4ad; 如果本文对您有帮助&#xff0c;不妨点赞、收藏、关注支持博主&#xff0c;我们一起进步&#xff0c;共同成长&#xff01; 目录前言一、基于哈希表的两个…

一条更新语句的执行流程又是怎样的呢?

当一个表上有更新的时候&#xff0c;跟这个表有关的查询缓存会失效&#xff0c;所以这条语句就会把表T上所有缓存结果都清空。这也就是我们一般不建议使用查询缓存的原因。 接下来&#xff0c;分析器会通过词法和语法解析知道这是一条更新语句。优化器决定要使用ID这个索引。然…

JAVA+SQL离散数学题库管理系统的设计与开发

题库、试卷建设是教学活动的重要组成部分&#xff0c;传统手工编制的试卷经常出现内容雷同、知识点不合理以及笔误、印刷错误等情况。为了实现离散数学题库管理的信息化而开发了离散数学题库管理系统。 该系统采用C/S 模式&#xff0c;前台采用JAVA&#xff08;JBuilder2006&am…

如何选择合适的网络自动化工具

通过网络自动化工具实现网络自动化是所有网络组织的关键。如果没有合适的网络自动化工具&#xff0c;拥有由许多设备组成的大型网络环境的组织将无法执行重要操作&#xff0c;例如按时备份配置、实时跟踪不需要的更改以及遵守行业法规。当组织未能使用正确的网络自动化工具来执…

四百左右哪款蓝牙耳机比较好?400元价位蓝牙耳机推荐

除了日常通勤以及休息前听歌以外&#xff0c;随着加班变得频繁&#xff0c;工作时也戴起了耳机&#xff0c;由于市面上的耳机种类繁多&#xff0c;因此许多人不知道从而选择&#xff0c;小编发现更多的人是追求性价比&#xff0c;所以整理了一期四百左右性能表现优异的款式给大…

量化择时——LSTM深度学习量化择时(第1部分—因子测算)

之前我们尝试使用SVM&#xff0c;将时序数据转为横截面的数据&#xff0c;使用机器学习的方法进行预测 量化择时——SVM机器学习量化择时&#xff08;第1部分—因子测算&#xff09;&#xff1a; https://blog.csdn.net/weixin_35757704/article/details/129909497 但是因为股…

DHCP及中继(UOS)

DHCP服务器 中继器 客户端 服务器 安装DHCP apt install isc-dhcp-server -y 编辑配置文件 vim /etc/dhcp/dhcpd.conf 重启服务 systemctl restart isc-dhcp-server 配置监听网卡 vim /etc/default/isc-dhcp-server 中继器 安装dhcp yum install dhcp -y nmtui 修改…

pytest测试报告Allure - 动态生成标题生成功能、添加用例失败截图

一、动态生成标题 默认 allure 报告上的测试用例标题不设置就是用例名称&#xff0c;其可读性不高&#xff1b;当结合 pytest.mark.parametrize 参数化完成数据驱动时&#xff0c;如标题写死&#xff0c;其可读性也不高。 那如果希望标题可以动态的生成&#xff0c;采取的方案…

Hadoop 生态圈及核心组件简介Hadoop|MapRedece|Yarn

文章目录大数据时代HadoopHadoop概述Hadoop特性优点Hadoop国内外应用Hadoop发行版本Hadoop集群整体概述HDFS分布式文件系统传统常见的文件系统数据和元数据HDFS核心属性HDFS简介HDFS shell操作Map Reduce分而治之理解MapReduce思想分布式计算概念MapReduce介绍MapReduce产生背景…

[STM32F103C8T6]DMA

DMA(Direct Memory Access&#xff0c;直接存储器访问) 提供在外设与内存、存储器和存储器、外设 与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通&#xff0c;而不需要依赖于 CPU&#xff0c;在这个时间中&#xff0c;CPU对于内存的工作来说就无法使用。 我自己…

JDBC概述三(批处理+事务操作+数据库连接池)

一&#xff08;批处理&#xff09; 1.1 批处理简介 批处理&#xff0c;简而言之就是一次性执行多条SQL语句&#xff0c;在一定程度上可以提升执行SQL语句的速率。批处理可以通过使用Java的Statement和PreparedStatement来完成&#xff0c;因为这两个语句提供了用于处理批处理…

BGP策略实验

实验要求&#xff1a; 1、使用PreVa1策略&#xff0c;确保R4通过R2到达192.168.10.0/24 2、使用AS_Path策略&#xff0c;确保R4通过R3到达192.168.11.0/24 3、配置MED策略&#xff0c;确保R4通过R3到达192.168.12.0/24 4、使用Local Preference策略&#xff0c;确保R1通过R2到…

公司新招了个腾讯拿38K的人,让我见识到了什么才是测试天花板···

5年测试&#xff0c;应该是能达到资深测试的水准&#xff0c;即不仅能熟练地开发业务&#xff0c;而且还能熟悉项目开发&#xff0c;测试&#xff0c;调试和发布的流程&#xff0c;而且还应该能全面掌握数据库等方面的技能&#xff0c;如果技能再高些的话&#xff0c;甚至熟悉分…

【失业即将到来?】AI时代会带来失业潮吗?

文章目录前言一、全面拥抱AIGC二、AI正在取代这类行业总结前言 兄弟姐妹们啊&#xff0c;AI时代&#xff0c;说抛弃就抛弃&#xff0c;真的要失业了。 一、全面拥抱AIGC 蓝色光标全面暂停外包&#xff1f; 一份文件截图显示&#xff0c;中国知名4A广告公司&#xff0c;蓝色光…