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

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

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.hqwc.cn/news/2669.html

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

相关文章

Java——《面试题——分布式篇》

前文 java——《面试题——基础篇》 Java——《面试题——JVM篇》 Java——《面试题——多线程&并发篇》 Java——《面试题——Spring篇》 Java——《面试题——SpringBoot篇》 Java——《面试题——MySQL篇》​​​​​​ Java——《面试题——SpringCloud》 Java…

大数据Doris(五十三):MySQL Dump 导出

文章目录 MySQL dump 导出 一、Dump导出案例 二、注意事项 MySQL Dump 导出 mysqldump是一个常用的 MySQL 数据库备份工具,它可以将 MySQL 数据库中的数据导出为 SQL 格式的文件,从而实现对数据的备份、迁移和恢复等操作。Doris 在0.15 之后的版本已…

Echarts折线图折线呈现为渐变线条

想要如图所示的折线图,折线线条为渐变颜色,两边颜色接近区域面积的颜色,中间颜色亮度高一些,在series中使用lineStyle,将其color设置为渐变色: option {xAxis: {type: category,data: [Mon, Tue, Wed, Th…

服务器技术(三)--Nginx

Nginx介绍 Nginx是什么、适用场景 Nginx是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。 Nginx专为性能优化而开发,性能是其最重要的考量&#xf…

PaddleOCR #使用PaddleOCR进行光学字符识别 - OCR模型对比

PaddleOCR 在其工具包中提供了多种模型,并且非常易于应用。根据准确性和速度比较模型始终是一个好习惯。在本节中,我们将比较 PaddleOCR 提供的四种模型,即 SRN、PP-OCRv2、PP-OCRv3 和 NRTR。比较将在 COCO-text 数据集上进行,该…

神经网络初谈

文章目录 简介神经网络的发展历程神经网络的初生神经网络的第一次折戟神经网络的新生,Hinton携BP算法登上历史舞台命途多舛,神经网络的第二次寒冬神经网络的重生,黄袍加身,一步封神神经网络的未来,众说纷纭其他时间点 …

vscode超炫酷的编码特效详解

1.在扩展中搜索 插件:Power Mode 2.在设置里搜索Code Actions On Save 3.点击在settings.json中编辑 {"powermode.enabled": true, //启动// "powermode.presets": "flames", // 火花效果 // 炸裂// "powermode.presets&quo…

uniapp项目或者vue项目 封装弹框组件

baseDialog组件代码: <template><view class"base-dialog" v-if"show"><view class"mask"></view><view class"Popmenu" :style"{ width }"><view class"header">{{ title …

【性能测试】Jenkins+Ant+Jmeter自动化框架的搭建思路

前言 前面讲了Jmeter在性能测试中的应用及扩展。随着测试的深入&#xff0c;我们发现在性能测试中也会遇到不少的重复工作。 比如某新兴业务处于上升阶段&#xff0c;需要在每个版本中&#xff0c;对某些新增接口进行性能测试&#xff0c;有时还需要在一天中的不同时段分别进行…

Objective-C 父元素和子元素的点击事件

场景&#xff1a; &#xff08;需求1&#xff09;pageA一开始是【默认模式】&#xff0c;点击父元素view&#xff08;包括【搜索】文字&#xff09;&#xff0c;进入【搜索模式】&#xff1b; &#xff08;需求2&#xff09;在pageA中&#xff0c;点击【取消】文字时&#xff…

随机数检测(二)

随机数检测&#xff08;二&#xff09;- 扑克检测、重叠子序列、游程总数、游程分布 3.4 扑克检测方法3.5 重叠子序列检测方法3.6 游程总数检测3.7 游程分布检测 3.4 扑克检测方法 扑克检测方法如下图。 以下实现代码供参考。 def alterOffsetBit(m, offset, listSub:list)…

浏览器基础原理-安全: HTTPS

HTTP协议的历史: HTTP协议的目的很单纯, 就是为了传输超文本文件, 所以早期的 HTTP 一直保持着明文传输数据的特征, 但是中间很有可能会被截取或者篡改, 即收到中间人攻击. 解析HTTP协议栈层面: HTTPS往里面加入了安全层, 它的指责是: 对发起HTTP请求的数据进行加密和对接收…