5-2图像处理经典案例:正弦噪声图像去噪

news2024/11/15 10:47:30

学习目标:  图像处理经典案例  去除噪声  

1.简述

图像降噪的英文名称是Image Denoising, 图像处理中的专业术语。是指减少数字图像中噪声的过程,有时候又称为图像去噪。图像的噪声来源相对复杂,搞清楚图像噪声的成因对我们进行图像去噪的工作有帮助。因为对于满足某些数学统计规律的噪声,那么逆向去除的时候就变得好办了。另外,深度学习技术很多也用在图像去噪领域,深度学习依赖数据,明白噪声的分布特点有利于制作数据集。

还有需要明确的是,对于图像噪声而言,本质并非是空域的,也就是说并不是该点相对于周边点显得突兀,就说该点是噪点。而是该点相对于连续时间内同一位置产生的不同点而言,如果误差较大,才能称之为噪点,即噪声本质是时域的。 那么,我们在计算图像某块区域的时候,有时候会用这块区域的平坦图像计算该区域的信噪比,其实也是用了一个潜在的假设:该平坦区域的各个点可以看做是中心点的连续时间内的集合。

噪声是图像干扰的重要原因。一幅图像在实际应用中可能存在各种各样的噪声,这些噪声可能在传输中产生,也可能在量化等处理中产生。根据噪声和信号的关系可将其分为三种形式:(f(x, y)表示给定原始图像,g(x, y)表示图像信号,n(x, y)表示噪声。)

1) 加性噪声,此类噪声与输入图像信号无关,含噪图像可表示为f(x, y)=g(x, y)+n(x, y),信道噪声及光导摄像管的摄像机扫描图像时产生的噪声就属这类噪声;

2) 乘性噪声,此类噪声与图像信号有关,含噪图像可表示为f(x, y)=g(x, y)+n(x ,y)g(x, y),飞点扫描器扫描图像时的噪声,电视图像中的相干噪声,胶片中的颗粒噪声就属于此类噪声。

3) 量化噪声,此类噪声与输入图像信号无关,是量化过程存在量化误差,再反映到接收端而产生。

目前来说图像去噪分为三大类:基于滤波器的方法(Filtering-Based Methods)、基于模型的方法(Model-Based Methods)和基于学习的方法(Learning-Based Methods)

上面是一种划分形式,下面让我们看一下另外一种划分方式,按照 sensor 成像过程划分:

  1. shot noise: 光子打在光敏传感器上经过光电效应产生电子,但是电子的产生是具有误差的。对于同一强度的光子,产生的电子大小的分布满足迫松分布的统计。这个误差带来的噪声称之为散粒噪声,即 shot noise。
  2. read noise:电子转换成电压,电压经模数转换器后读出具体数值,在读数的过程中产生的误差可以称之为读出噪声,即 read noise。我认为 read noise 广义来说包含了两块,一块是黑电平(暗电流),另一块则是满足高斯分布的噪声。
  3. 其他:这里简单的把其他噪声归结为一类,因为这类噪声基本上不满足统计规律,包括热噪声(传感器发热的产生的电子)、像素响应不均匀性(像素点对于光子响应的不均匀性)、量化噪声(读出电压为浮点型,需要转化为整型)、sensor 的固定噪声(与 sensor 的工艺相关)等等。

2.代码


%%  
close all;
clear all;
I=imread('cameraman.tif');
I=im2double(I);
%%   生成正弦噪声  
u=32;
v=-32;
d=0.3;
u1=2*pi*u/256;
v1=2*pi*v/256;
for j=1:256
    for k=1:256
        A(j,k)=d*sin(u1*j+v1*k);
    end
end
%%  叠加生成正弦噪声  
J=I+A;

F1=fft2(I);
F1am=abs(F1);
F1ph=angle(F1);
F11=fftshift(F1);
F11am=abs(F11);
F2=fft2(J);
F2am=abs(F2);
F2ph=angle(F2);
F22=fftshift(F2);
F22am=abs(F22);
subplot(2,3,1),imshow(I);title('原图像');
subplot(2,3,2),imshow(J);title('叠加正弦噪声后的图像');
subplot(2,3,4),imshow(0.25*log10(1+F11am));
subplot(2,3,5),imshow(0.25*log10(1+F22am));

%%   交互式复原图像  
F2am0=F2am(1,1);
F2am(1,1)=0;
thresh=max(F2am(:));
for j=1:1:256
    for k=1:1:256
        if F2am(j,k)>thresh/2
            F2am(j,k)=0;
        end
    end
end
F2am(1,1)=F2am0;
R=F2am.*exp(i*F2ph);
R2=fftshift(R);
R2am=abs(R2);
subplot(2,3,3),imshow(abs(ifft2(R)));title('复原后的图像')
subplot(2,3,6),imshow(0.25*log10(1+R2am));
F3am=abs(fftshift(fft2(J)));
figure;
imshow(0.25*log10(1+F3am));


3.运行结果

2437b2ab0f834eb3834fbb77f396ed20.png

 050eeba8b7f3441994a2a02e0e3b779a.png

 

 

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

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

相关文章

B+树

B树 B树是对B树的一种变形树,它与B树的差异在于: 非叶结点仅具有索引作用,也就是说,非叶子结点只存储key,不存储value 树的所有叶结点构成一个有序链表,可以按照key排序的次序遍历全部数据 B树存储数据 若参数M选…

使用影刀RPA拆分excel数据

首先,要使程序有一定的兼容性,即增加互动性,认为选择要拆分的文件和拆分的依据列,可以利用影刀中的‘打开选择对话框’和‘打开输入对话框’来实现,这样一来便不用考虑待拆分excel的路径问题获取1中选择的依据拆分列&a…

登录框界面之渗透测试思路总结

前言 大家都知道,渗透的过程中,遇见登录框是很常见的。下面就简单总结一下渗透中遇见登录页面的思路: 首先登录页面可能产生哪些漏洞呢? 1、弱密码与暴力破解 2、万能密码、SQL与XSS(注入) 3、登录时&…

渗透测试自动化报告脚本-----Nessus报告自动化解析--1-html解析

本专栏内容主要用于渗透测试工程师应对在工作中的自动化操作难题,高效摸鱼专用 解决问题 1、对Nessus导出的html报告进行自动化的提取操作,包括IP地址,漏洞个数,漏洞等级,漏洞描述,CVE编号等 2、由于Nes…

配置文件的优先级及maven打包和参数(port)的修改

1、配置文件的优先级 SpringBoot中支持五种配置格式:优先级:命令行参数(–xxxxxx) > java系统属性(-Dxxx xxx) > application.properties > application.yml > application.yaml 虽然springboot支持多种格式配置文件,但是在项目开发时&…

智能仓储货架的电子标签解决方案

近年来,电商和新零售行业的迅猛增长催生了仓储管理场景和运营模式的变革。企业不断寻求“低成本”和“更可靠”的解决方案,加快了仓储管理从粗放型向精细化转变的步伐。仓储管理的技术变革从机械化走向自动化,仓储数智化成为主流趋势。在这个…

chatgpt赋能python:Python语言冒泡排序-深入了解

Python语言冒泡排序 - 深入了解 冒泡排序是一种基本的排序算法,也是学习排序算法的入门算法之一。在Python中,我们可以很容易地实现冒泡排序。 冒泡排序的原理 冒泡排序的原理很简单,大概分为以下几个步骤: 比较相邻的元素&am…

Jnpf低代码开发平台

一、写在前面 低代码开发平台,一个号称能在几分钟的时间里开发出一套公司内部都可使用的应用系统开发工具。 很多人或许都隐隐听说过低代码,因为低代码不仅远名国外,国内的腾讯、阿里、华为、网易、百度等科技巨头也纷纷入局,足以…

蓝桥杯专题-试题版-【打印十字图】【剪格子】【错误票据】【翻硬币】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

【软考网络管理员】2023年软考网管初级常见知识考点(29)-进程管理与存储管理

涉及知识点 进程管理,进程状态,死锁问题,存储管理,页面置换算法,软考网络管理员常考知识点,软考网络管理员网络安全,网络管理员考点汇总。 原创于:CSDN博主-《拄杖盲学轻声码》&…

高速电路设计系列分享-熟悉JESD204B(中)

目录 概要 整体架构流程 技术名词解释 技术细节 1.数据链路层 小结 概要 提示:这里可以添加技术概要 随着高速ADC跨入GSPS范围,与FPGA(定制ASIC)进行数据传输的首选接口协JESD204B。为了捕捉频率范围更高的RF频谱,需要宽带RFADC。在其推动下…

elasticsearch 明明有index但是查不出来

最近用python去query elastricsearch的data,但是我再kibana明明看到有,但是就是查不出来 因为涉及公司隐私,就不截图直接举例子了,我在 discover里面看到的是某条数据的index是 xxx-sss-a-b,但是我写query是xxx-sss-a-…

Spring Boot中的@EnableAutoConfiguration注解

Spring Boot中的EnableAutoConfiguration注解 介绍 Spring Boot是一个非常流行的Java框架,它可以快速创建基于Spring的应用程序。Spring Boot提供了许多自动配置功能,使得开发者可以非常容易地创建一个可运行的应用程序。其中,EnableAutoCo…

macOS Sonoma 14beta 2 With OpenCore 0.9.3 and winPE双引导黑苹果镜像

镜像特点 完全由黑果魏叔官方制作,针对各种机型进行默认配置,让黑苹果安装不再困难。系统镜像设置为双引导分区,全面去除clover引导分区(如有需要,可以自行直接替换opencore分区文件为clover引导文件)备注…

【江西省研究生数学建模竞赛】题目之一 蒸汽发生器倒U型管内液体流动 详细的数学模型及参考文献

【江西省研究生数学建模竞赛】题目之一 蒸汽发生器倒U型管内液体流动 1 题目 2023年江西省研究生数学建模竞赛题目之一 荧汽发生器倒U型管内液体流动 PACTEL压水堆整体测试设备在2009年建造,用于带有垂直倒U型管莱汽发生器的压水堆热液压相关的安全性研究&#x…

MobaXterm 的安装-迅为STM32MP157开发板

MobaXterm 是远端电脑的终极工具箱,作为一个单窗口程序,为程序员,网站管理员,IT 管理员以及更多需要处理远端任务的用户提供了很多实用的功能。MobaXterm 为 windows 桌面提供了所有重要的远端网络工具(SSH, X11, RDP, VNC, FTP, …

Spring Boot中的事务隔离级别

Spring Boot中的事务隔离级别 介绍 Spring Boot是一个流行的Java框架,它提供了许多方便的注解和工具,使得数据库操作变得更加容易。其中,事务隔离级别是Spring Boot中一个非常重要的概念,它可以帮助开发者控制数据库操作的并发性…

postman接口测试之发送post请求

目录 前言: 一、新建目录文件夹 二、新建请求(api接口) 三、添加请求方法、url、及参数 四、发送post请求并且查看请求结果 前言: Postman是一种广泛使用的API开发和测试工具,可以帮助测试人员快速创建请求并检查…

进程与进程间通信

一、什么是进程? 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位,是操作系统结构的基础。进程实体由程序段、数据段以及进程控制块 (PCB) 组成。…

java项目之旅游资源网站ssm源码

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的旅游资源网站。项目源码以及部署相关请联系风歌,文末附上联系信息 。 旅游资源网站源码下载地址: https://download…