使用逆滤波算法deconvwnr恢复图像回复图像时,产生了很多横竖条纹。解决办法

news2025/1/12 6:44:46

使用逆滤波算法deconvwnr恢复图像回复图像时,产生了很多横竖条纹。解决办法

原来的代码

% 清除工作空间并关闭所有图形窗口
clear; clc; close all;

% 读取原始图像
original_image = imread('pic3.jpg');

% 显示原始图像
subplot(131);
imshow(original_image);
title('Original Image');

% 创建模糊核(PSF)
PSF = fspecial('gaussian', [5 5], 2); % 高斯模糊核
blurred_image = imfilter(original_image, PSF); % 模糊图像

% 显示模糊图像
subplot(132);
imshow(blurred_image);
title('Blurred Image');

% 估计噪声方差
estimated_noise_variance = 0.0001; % 估计的噪声方差

% 使用逆滤波算法deconvwnr恢复图像
restored_image = deconvwnr(blurred_image, PSF, estimated_noise_variance);

% 显示恢复后的图像
subplot(133);
imshow(restored_image);
title('Restored Image');

结果图:

在这里插入图片描述

横竖条纹可能是由于逆滤波算法的过度放大导致的,这是常见的问题之一。在处理模糊和噪声的图像时,逆滤波容易放大高频噪声,从而产生这种条纹效应。为了解决这个问题,可以尝试以下方法之一:

1.正则化参数调整:逆滤波算法通常有一个正则化参数,用于控制放大高频噪声的程度。通过调整正则化参数,可以尝试减轻条纹效应。
2.使用其他复原算法:除了逆滤波算法外,还有许多其他复原算法可供选择,如Richardson-Lucy 算法、Wiener 滤波器等。尝试使用不同的算法可能会获得更好的结果。
3.处理模糊核不确定性:如果模糊核的准确性不高或无法准确估计,可以尝试使用一些更复杂的方法来处理模糊核的不确定性,如盲去卷积算法。
4.后处理:对恢复的图像进行后处理操作,如边缘增强、降噪等,以改善图像质量并减轻条纹效应。

尝试调整正则化参数来减轻条纹效应,代码如下:

% 使用逆滤波算法deconvwnr恢复图像,并调整正则化参数
restored_image = deconvwnr(blurred_image, PSF, estimated_noise_variance, 0.01);

% 显示恢复后的图像
% 显示恢复后的图像
subplot(133);
imshow(restored_image);
title('Restored Image');

结果:横竖条纹减少
图像:
在这里插入图片描述

可以尝试不同的正则化参数值,以找到最适合所选图像的结果。
如果问题仍然存在,可能需要尝试其他复原算法或进行更复杂的处理。

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

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

相关文章

(mac)Prometheus监控之Node_exporter(CPU、内存、磁盘、网络等)

完整步骤 1.启动 Prometheus 普罗米修斯 prometheus --config.file/usr/local/etc/prometheus.yml 浏览器访问 http://localhost:9090/targets 2.启动Node_exporter node_exporter 访问:http://localhost:9100 3.启动grafana brew services start grafana 访问…

FlashSpeech、ID-Animator、TalkingGaussian、FlowMap、CutDiffusion

本文首发于公众号:机器感知 FlashSpeech、ID-Animator、TalkingGaussian、FlowMap、CutDiffusion Gradient Guidance for Diffusion Models: An Optimization Perspective Diffusion models have demonstrated empirical successes in various applications and ca…

基于SpringBoot和Leaflet的地震台网信息预警可视化

目录 前言 一、后台管理设计与实现 1、Model层 2、业务层 3、控制层 二、前端预警可视化设计与实现 1、网页结构 2、数据绑定 三、效果展示 总结 前言 在之前的几篇博客中,我们讲解了如何在Leaflet中进行预警信息提示效果,以及基于XxlCrawler进…

【Linux笔记】基本指令(一)

一道残阳铺水中 半江瑟瑟半江红 目录 Linux基本指令 罗列目录内容:ls 指令 显示当前目录位置信息:pwd 指令 切换工作目录:cd 指令 创建文件修改时间戳:touch指令 创建空目录:mkdir指令 删除空目录:rmdir指…

【14-Ⅱ】Head First Java 学习笔记

HeadFirst Java 本人有C语言基础,通过阅读Java廖雪峰网站,简单速成了java,但对其中一些入门概念有所疏漏,阅读本书以弥补。 第一章 Java入门 第二章 面向对象 第三章 变量 第四章 方法操作实例变量 第五章 程序实战 第六章 Java…

uniapp如何隐藏默认的页面头部导航栏,uniapp开发小程序如何隐藏默认的页面头部导航栏

uniapp如何隐藏默认的页面头部导航栏 默认效果 隐藏后 在pages.json文件中插入 在uni-app中,设置navigationStyle为custom来自定义导航栏,可以隐藏默认的头部了。 {"path": "pages/index/index","name": "index&qu…

STM32与OLED显示屏通信(四针脚和七阵脚)

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 单片机调试 2. OLED简介 3. 接线 4. OLED驱动函数 4.1 四针脚版本 OLED.c OLED.h OLED_Font.h 4.2 七针脚版本 引脚连接 OLED.c OLED.h OLED_Font.h 5. 主函数 工程文件模板 1. 单片机…

Selenium 保存会话信息避免重复登录实战!

前言 • 在一些实际开发场景中,我们在使用 Selenium 做自动化测试时需要保留用户的会话信息,从而避免重复登录,今天这篇文章就带大家实战如何使用 Selenium 保存会话信息。 版本 • Python 3.x 整体思路 • 当我们打开页面时,…

C语言-自定义类型结构体详细讲解

遇到困难时不要抱怨,既然改变不了过去,那么就努力改变未来!💓💓💓 目录 •🌙知识回顾 • 🍋知识点一:结构体类型的声明 ​编辑 • 🌰1.结构体的声明 ​编…

web自动化系列-selenium的基本方法介绍

web自动化 ,一个老生常谈的话题 ,很多人的自动化之路就是从它开始 。它学起来简单 ,但做起来又比较难以驾驭 ;它的执行效率慢 、但又是最接近于用户的操作场景 ; 1.web自动化中的三大亮点技术 我们先聊聊 &#xff0…

MySQL多版本并发控制mvcc原理浅析

文章目录 1.mvcc简介1.1mvcc定义1.2mvcc解决的问题1.3当前读与快照读 2.mvcc原理2.1隐藏字段2.2版本链2.3ReadView2.4读视图生成原则 3.rc和rr隔离级别下mvcc的不同 1.mvcc简介 1.1mvcc定义 mvcc(Multi Version Concurrency Control),多版本并发控制,是…

2024深圳杯C题的8页思路分析+所有代码可执行+参考文献+持续更新参考论文(已经更新了代码与图像)

比赛题目的完整版思路可执行代码数据参考论文都会在第一时间更新上传的,大家可以参考我往期的资料,所有的资料数据以及到最后更新的参考论文都是一次付费后续免费的。注意:(建议先下单占坑,因为随着后续我们更新资料数…

每周一算法:最短路计数

题目描述 给出一个 N N N个顶点 M M M 条边的无向无权图,顶点编号为 1 1 1 到 N N N。 问从顶点 1 1 1 开始,到其他每个点的最短路有几条。 输入格式 第一行包含 2 2 2 个正整数 N , M N,M N,M,为图的顶点数与边数。 接下来 M M …

vue3实现全局事件总线

1、vue3中使用全局事件总线是变化最大的。在vue2中,我们在new Vue中在beforeCreate钩子函数中使用vue.prototype.$busthis来创建全局事件总线。vue3中我需要借助第三方库来完成创建全局事件总线。 2、安装依赖 npm i mitt -s3、封装event-bus.js文件 import mitt …

Web前端开发之HTML_3

标签之表格Form表单块元素与行内元素&#xff08;内联元素&#xff09;HTML5新增标签 1. 标签之表格 <table></table> 1.1 表格&#xff08;快速生成&#xff1a;table>tr*2>td*3{单元格}&#xff09; 表格由行、列、单元格组成。单元格有同行等高、同列等…

【C++】:拷贝构造函数和赋值运算符重载

目录 一&#xff0c;拷贝构造函数1. 什么是拷贝构造函数2. 拷贝构造函数的特性3. 实践总结 二&#xff0c;赋值运算符重载2.1 运算符重载2.2 赋值运算符重载 一&#xff0c;拷贝构造函数 1. 什么是拷贝构造函数 拷贝构造函数是特殊的构造函数。是用一个已经存在的对象&#x…

ArtNeRF、Attention Control、Pixel is a Barrier、FilterPrompt

本文首发于公众号&#xff1a;机器感知 ArtNeRF、Attention Control、Pixel is a Barrier、FilterPrompt ArtNeRF: A Stylized Neural Field for 3D-Aware Cartoonized Face Synthesis Recent advances in generative visual models and neural radiance fields have greatly …

文件上传复习(upload-labs18-19关)

Pass-18&#xff08;条件竞争&#xff09; 代码和第17关大差不差&#xff0c;所以查看提示 需要用到代码审计 上传图片木马配合解析漏洞进行getshell 新建一句话木马 18.php&#xff0c;代码为&#xff1a; <?php fputs(fopen(../upload/shell18.php,w),<?php phpin…

js的算法-交换排序(冒泡)

交换排序 所谓交换排序&#xff0c;是指根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。基于交换的排序算法很多&#xff0c;本次介绍冒泡排序和快速排序。 冒泡 基本思想 从后往前&#xff08;或从前往后&#xff09;两两比较相邻元素的值&#xff0…

新风口下的必应bing国内广告投放该怎么做?

必应Bing作为全球搜索引擎市场的重要参与者&#xff0c;正逐渐显现出其在国内市场的独特价值和潜力。随着互联网生态的多元化发展&#xff0c;必应Bing凭借其高质量用户群和精准投放能力&#xff0c;成为了企业寻求新增长点的新风口。 一、洞察先机&#xff0c;精准定位市场 …