MATLAB中deconvwnr函数用法

目录

语法

说明

示例

使用 Wiener 滤波对图像进行去模糊处理


        deconvwnr函数的功能是使用 Wiener 滤波对图像进行去模糊处理。

语法

J = deconvwnr(I,psf,nsr)
J = deconvwnr(I,psf,ncorr,icorr)
J = deconvwnr(I,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 滤波等效于理想的逆滤波。

示例

使用 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')

如图所示:

        尝试在假设没有噪声的情况下进行还原。

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');

如图所示:

参数说明

I — 模糊图像

        模糊图像,指定为任意维度的数值数组。

psf — 点扩散函数

        点扩散函数,指定为数值数组。

nsr — 噪信比

        噪信比,指定为非负标量或与图像 I 大小相同的数值数组。如果 nsr 是数组,则它表示频谱域。为 nsr 指定 0 等效于创建一个理想的逆滤波器。

ncorr — 噪声的自相关函数

噪声的自相关函数,指定为任意大小或维度(不超过原始图像)的数值数组。

  • ​如果 ncorr 的维度与图像 I 的维度匹配,则值对应于每个维度内的自相关。

  • ​如果 ncorr 是向量,psf 也是向量,则 ncorr 中的值表示第一个维度的自相关函数。

  • 如果 ncorr 是向量,psf 是数组,则一维自相关函数通过对称性外插至 psf 的所有非单一维度。

  • 如果 ncorr 是标量,则值表示噪声的功率。

icorr — 图像的自相关函数

图像的自相关函数,指定为任意大小或维度(不超过原始图像)的数值数组。

  • ​如果 icorr 的维度与图像 I 的维度匹配,则值对应于每个维度内的自相关。

  • ​如果 icorr 是向量,psf 也是向量,则 icorr 中的值表示第一个维度的自相关函数。

  • 如果 icorr 是向量,psf 是数组,则一维自相关函数通过对称性外插至 psf 的所有非单一维度。

  • 如果 icorr 是标量,则值表示图像的功率。

J — 去模糊后的图像

去模糊后的图像,以数值数组形式返回。J 与 I 的数据类型相同。

提示

  • ​输出图像 J 可能出现算法中使用的离散傅里叶变换引入的振铃效应。要减少振铃效应,请在调用 deconvwnr 之前使用 I = edgetaper(I,psf)。

参考

[1] Gonzalez, R. C., and R. E. Woods. Digital Image Processing. Addison-Wesley Publishing Company, Inc., 1992.

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

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

相关文章

探索未来,开启无限可能:打造智慧应用,亚马逊云科技大语言模型助您一臂之力

文章目录 什么是大模型?大模型训练方法亚马逊云科技推出生成式AI新工具 —— aws toolkit使用教程 总结 什么是大模型? 近期,生成式大模型是人工智能领域的研究热点。这些生成式大模型,诸如文心一言、文心一格、ChatGPT、Stable …

微信小程序使用webview后点击左上角返回按钮一次性返回小程序

当我们来到webview标签对应的网页地址的时候,在该页面内进行几次跳转后,发现点击小程序左上角返回按钮返回的是上一次跳转的内容,并没有达到我们返回小程序的需求,而是要一直点,然后才能返回小程序。 我的情况是webvi…

「Verilog学习笔记」4位数值比较器电路

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 这里要注意题目的“门级描述方式”,所以我们只能使用基本门电路:&,|,!,^,^~。 具体实现思路:通过真值表得出Y0 Y1 Y2的逻辑表达…

4 Paimon数据湖之Hive Catalog的使用

更多Paimon数据湖内容请关注:https://edu.51cto.com/course/35051.html Paimon提供了两种类型的Catalog:Filesystem Catalog和Hive Catalog。 Filesystem Catalog:会把元数据信息存储到文件系统里面。Hive Catalog:则会把元数据…

解锁潜在商机的钥匙——客户管理系统公海池

在竞争激烈的市场环境下,企业需要更智能、高效的方式管理客户,从而挖掘潜在商机。客户管理系统的公海池,就是为此而生的利器,让你轻松解锁商机,提升客户管理效能。 公海池,打破信息孤岛,释放潜在…

PDF有限制密码,不能复制怎么办?

大家现在接触PDF文件越来越多,有的时候在网上下载的PDF文件打开之后,发现选中文字之后无法复制。甚至其他功能也都无法使用,这是怎么回事?该怎么办? 当我们发现文件打开之后,编辑功能无法使用,很…

无需公网IP!部署Apache服务器与内网穿透实现公网访问

Apache服务安装配置与结合内网穿透实现公网访问 文章目录 Apache服务安装配置与结合内网穿透实现公网访问前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpo…

使用github copilot

现在的大模型的应用太广了,作为程序员我们当然野可以借助大模型来帮我们敲代码。 下面是自己注册使用github copilot的过程。 一、注册github copilot 1. 需要拥有github账号 ,登录github之后,点右侧自己的头像位置,下面会出现…

Python(六) 列表

Python 中没有数组,而是加入了功能更强大的列表(list),列表可以存储任何类型的数据。 使用 访问 a [1,2.3,"python"] print(a[0] -->, a[0]) print(a[1:] -->, a[1:]) 输出 a[0] --> 1 a[1:] --> [2.3…

HTML5学习系列之简单使用1

HTML5学习系列之简单使用1 前言基础显示学习定义网页标题定义网页元信息定义网页元信息定义文档结构div元素di和classtitlerole注释 总结 前言 下班加班期间的简单学习。 基础显示学习 定义网页标题 <html lang"en"> <head> <title>从今天开始努…

大数据之LibrA数据库系统告警处理(ALM-12032 ommdba用户或密码即将过期)

告警解释 系统每天零点开始&#xff0c;每8小时检测当前系统中ommdba用户和密码是否过期&#xff0c;如果用户或密码即将在15天内过期&#xff0c;则发送告警。 当系统中ommdba用户过期的期限修改或密码重置&#xff0c;告警恢复。 告警属性 告警ID 告警级别 可自动清除 …

uniapp 本身就是一个坑,里面还有无数的小坑

uniapp 本身就是一个坑&#xff0c;里面还有无数的小坑 uniapp 用起来就感觉是个很无章法的框架&#xff0c;并且里面会有无数你意想不到的小坑&#xff0c;坑中套坑。 还不如 Capacitor 好用&#xff0c;至少它没有那么多坑&#xff0c;一次性就能成功。 遇到的那些坑 初始…

离线视频ocr识别

sudo apt-get install libleptonica-dev libtesseract-dev sudo apt-get install tesseract-ocr-chi-sim python -m pip install video-ocrwindows安装方法&#xff1a; 下载安装 https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-5.3.3.20231005.exe 下…

centos7安装docker容器

卸载老版本&#xff1a; $ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine/var/lib/docker/路径下存在镜像、数据卷、容器等&#xff0c;在卸载的时候是不会自动删除…

Flink—— Data Source 介绍

Data Source 简介 Flink 做为一款流式计算框架&#xff0c;它可用来做批处理&#xff0c;即处理静态的数据集、历史的数据集&#xff1b;也可以用来做流处理&#xff0c;即实时的处理些实时数据流&#xff0c;实时的产生数据流结果&#xff0c;只要数据源源不断的过来&#xff…

Vue的状态管理有哪些?

在Vue中&#xff0c;有多种方式可以进行状态管理&#xff0c;以下是一些常见的Vue状态管理解决方案&#xff1a; 1&#xff1a;Vuex&#xff1a; Vuex是Vue官方提供的状态管理库&#xff0c;用于管理Vue应用程序中的状态。Vuex使用一个单一的全局状态树&#xff08;state tre…

logback

logback集成 springboot 集成了logback日志系统&#xff0c;默认读取logbak配置文件&#xff0c;配置文件的名称默认&#xff1a;logback-spring.xml&#xff0c;如果想自定义配置文件的名称&#xff0c;需要在application.yml配置文件中作如下配置来指定logback的配置文件 l…

python能用来做什么

Python是一种流行的编程语言&#xff0c;由Guido van Rossum创建&#xff0c;并于1991年发布。 它用于&#xff1a; Web开发&#xff08;服务器端&#xff09;&#xff1b; 软件开发&#xff0c;数学计算&#xff0c;系统脚本编写。 Python能做什么&#xff1f; Python可以…

LogBack的日志报错解决办法 org.xml.sax.SAXNotRecognizedException

报错信息如下&#xff1a; 18:00:57,395 |-ERROR in ch.qos.logback.core.joran.event.SaxEventRecorder48aaecc3 - Error during parser creation or parser configuration org.xml.sax.SAXNotRecognizedException: unrecognized feature http://xml.org/sax/features/extern…

Mybatis-plus 内部提供的 ServiceImpl<M extends BaseMapper<T>, T> 学习总结

作用 当集成Mybatis-Plus 后&#xff0c;我们的大部分数据库操作都可以通过 XxxxxMapper &#xff0c;同时 Mybatis-plus 在Mapper 提供基本操作方法的同时&#xff0c;也提供类基础的 serviceImpl 来帮助我们完成一些常见的基本操作。 使用 一般情况下&#xff0c;我们首先…