图像复原MATLAB实现

前言:本篇博客先介绍滤波器滤除噪声,再介绍滤波器复原,侧重于程序的实现。

一:三种常见的噪声

二:空间域滤波

空间域滤波复原是在已知噪声模型的基础上,对噪声的空间域进行滤波。
空间域滤波复原方法主要包括:

  均值滤波器

    算术均值滤波器

    几何均值滤波器
    谐波均值滤波器
    逆谐波均值滤波器
  顺序统计滤波器
    中值滤波器
    最大值/最小值滤波器

2.1算数均值滤波器

1 img=imread(‘D:/picture/ZiXia.jpg‘);
2 img=rgb2gray(img);
3 figure,imshow(img);//原图
4 img_noise=double(imnoise(img,‘gaussian‘,0.06));
5 figure,imshow(img_noise,[]);//含有高斯噪声的图
6 img_mean=imfilter(img_noise,fspecial(‘average‘,3));//滤波后的图
7 figure;imshow(img_mean,[]);

2.2几何均值滤波器

1 img=imread(‘cameraman.tif‘);
2 img=rgb2gray(img);
3 figure,imshow(img);
4 img_noise=double(imnoise(img,‘gaussian‘,0.06));
5 figure,imshow(img_noise,[]);
6 img_mean=exp(imfilter(log(img_noise+1),fspecial(‘average‘,3)));
7 figure;imshow(img_mean,[]);

2.3谐波均值滤波器

2.4逆谐波均值滤波器

采用逆谐波均值滤波器对附加胡椒噪声图像进行滤波的matlab程序如下:

1 img=imread(‘cameraman.tif‘);  figure,imshow(img);
2 [M,N]=size(img);R=imnoise2(‘salt & pepper‘,M,N,0.1,0);
3 img_noise=img;img_noise(R==0)=0;
4 img_noise=double(img_noise); figure,imshow(img_noise,[]);
5 Q=1.5;
6 img_mean=imfilter(img_noise.^(Q+1),fspecial(‘average‘,3))./imfilter(img_noise.^Q,fspecial(‘average‘,3));
7 figure;imshow(img_mean,[]);

采用逆谐波均值滤波器对附加盐噪声图像进行滤波的matlab程序如下:

1 img=imread(‘csboard.tif‘);figure,imshow(img);
2 [M,N]=size(img);R=imnoise2(‘salt & pepper‘,M,N,0,0.1);
3 img_noise=img;img_noise(R==1)=255;
4 img_noise=double(img_noise); figure,imshow(img_noise,[]);
5 Q=-1.5;
6 img_mean=imfilter(img_noise.^(Q+1),fspecial(‘average‘,3))./imfilter(img_noise.^Q,fspecial(‘average‘,3));
7 figure;imshow(img_mean,[]);

2.5中值滤波器

1 img=imread(‘cameraman.tif‘);
2 img_noise=double(imnoise(img,‘salt & pepper‘,0.06));
3 img_mean=imfilter(img_noise,fspecial(‘average‘,5));
4 img_median=medfilt2(img_noise);%一次中值滤波
5 img_median2=medfilt2(img_median);%二次中值滤波

2.6最大值,最小值滤波器

利用最大值滤波器消除胡椒噪声污染图像的matlab程序如下。

1 img=imread(‘csboard.tif‘);
2 [M,N]=size(img);
3 R=imnoise2(‘salt & pepper‘,M,N,0.1,0);
4 img_noise=img;
5 img_noise(R==0)=0;
6 img_noise=double(img_noise);
7 imwrite(uint8(img_noise),‘csbord_pepper.jpg‘);
8 img_max=imdilate(img_noise,ones(3,3));
9 imwrite(uint8(img_max),‘cameraman_saltpepper_max.jpg‘);

利用最小值滤波器消除盐噪声污染图像的matlab程序如下。

1 img=imread(‘csboard.tif‘);
2 [M,N]=size(img);
3 R=imnoise2(‘salt & pepper‘,M,N,0,0.1);
4 img_noise=img;
5 img_noise(R==1)=255;
6 img_noise=double(img_noise);
7 imwrite(uint8(img_noise),‘csbord_salt.jpg‘);
8 img_min=imerode(img_noise,ones(3,3));
9 imwrite(uint8(img_min),‘cameraman_saltpepper_min.jpg‘);

原文地址:https://www.cnblogs.com/henuliulei/p/10847052.html

时间: 2024-10-18 20:25:07

图像复原MATLAB实现的相关文章

基于matlab的退化图像复原(一)------图像退化处理

图像恢复技术是图像处理领域一类重要的处理技术,与图像增强等其他基本图像处理技术类似,该技术也是以获取视觉质量得到某种程度改善为目的的,所不同的是图像恢复过程需要根据指定的图像退化模型来完成,根据这个退化模型对在某种情况下退化或恶化了的退化图像进行恢复,以获取到原始的.未经过退化的原始图像.换句话说,图像恢复的处理过程实际是对退化图像品质的提升,并通过图像品质的提升来达到图像在视觉上的改善. 这是MATLAB的自带函数库里的一些函数, 把它调用出来研究理解一下 分别是运动模糊,圆盘模糊,钝化模糊.

基于matlab的退化图像复原(三)------维纳滤波复原

还是照着书上推了一遍, 反正写一遍之后很好理解, 也许是只是这点算法比较简单基础... 讲到底还是统计的知识,二维的最小二乘法, 让均方差最小 放代码: I=imread('src.png'); I0=rgb2gray(I); subplot(151); imshow(I0); title('src'); H=fspecial('motion',30,45); %运动卷积的偏移矩阵 MotionBlur=imfilter(I0,H,0,'conv'); %卷积 MF=imfilter(I0,H,

基于matlab的退化图像复原(二)------逆滤波复原

差不多就是这个理论,傅里叶变换之后除掉退化函数的傅里叶变换,就变回来了. 说是这么说,写出来就是这样.手写公式简单得多,人懒就是任性. matlab代码. clc I=imread('src.png'); I0=rgb2gray(I); subplot(231); imshow(I0); title('src'); [m,n]=size(I0); F=fftshift(fft2(I0)); k=0.0025; H=[]; for u=1:m for v=1:n q=((u-m/2)^2+(v-n

基于matlab的退化图像复原(四)------Lucy-Richarson滤波复原

Lucy-Richarson滤波复原 I0=imread('src.png'); I=rgb2gray(I0); subplot(341); imshow(I); title('src'); subplot(345); imshow(I); title('src'); subplot(349); imshow(I); title('src'); H=fspecial('motion',20,30); %运动卷积的偏移矩阵 MotionBlur=imfilter(I,H); %卷积 subplot

Atitit MATLAB 图像处理 经典书籍attilax总结

1.1. MATLAB数字图像处理1 1.2. <MATLAB实用教程(第二版)>((美)穆尔 著)[简介_书评_在线阅读] - 当当图书.html1 1.3. 数字图像处理(MATLAB版)(第二版)(本科教学版)2 1.1. MATLAB数字图像处理 第1章 图像处理与MATLAB2007a简介 第2章 图像的编码和解码 第3章 图像复原 第4章 图像处理的相关操作 第5章 图像频域变换 第6章 图像处理中的代数运算及几何变换 第7章 图像增强 第8章 图像分割与边缘检测 第9章 小波分析

[家里蹲大学数学杂志]第057期图像复原中的改进 TV 模型

$\bf 摘要$: 本文给出了王大凯等编的<图像处理中的偏微分方程方法>第 6.2 节的详细论述. $\bf 关键词$: 图像复原; TV 模型; matlab 编程 1. 前言 图像在形成.传输和存储过程中中, 图像质量可能退化 (degradation). 而退化的图像可用数学模型: $$\bee\label{1:d} u_0=h_d*f+n \eee$$来描述, 其中 (1)$f(x,y)$ 是理想的图像; (2)$h_d(x,y)$ 是成像系统的点弥散函数 (point-spread

图像质量评价指标之Matlab实现

在图像处理算法研究中,很多时候需要有客观评价指标来对算法的性能进行评价. 比如,在图像复原.图像滤波算法研究中,需要采用客观评价指标来定量的来测试算法恢复出的图像相对于参考图像的好坏程度. 本文介绍文献中提到到三个比较好的客观评价指标——峰值性噪比PSNR.模糊系数K.质量因素Q,其定义分别是: 这三个指标的详细定义见参考文献[1]~[3],下面给出这三个评价指标的MatLab实现. [html] view plaincopy %说明:本文件为计算两幅视频图象相对于高清晰图象的质量,其中: %e

数字图像处理原理与实践(MATLAB版)勘误表

本文系<数字图像处理原理与实践(MATLAB版)>一书的勘误表. [内容简单介绍]本书全面系统地介绍了数字图像处理技术的理论与方法,内容涉及几何变换.灰度变换.图像增强.图像切割.图像去噪.小波变换.形态学处理.多尺度融合.偏微分方程应用.正交变换与图像压缩.边缘及轮廓检測.图像复原.图像去雾.多尺度空间构建与特征匹配等15大核心话题.全部算法均配有完整的MATLAB实现代码.并以此为基础具体介绍了MATLAB中与图像处理有关的近200个函数的用法,便于读者学习与实践.此外,本书还提供了丰富的

[DIP] 数字图像处理 (MATLAB) CH05

---慢慢地go through冈萨雷斯的DIP和配套的matlab,记下一些零碎的知识点给自己以后复习. DIP CH05 图像复原与重建 首先是一些空间域和频域添加噪声的方法,书中编写了imnoise2与imnoise3,分别在空间域和频域添加噪声(频域噪声对应空间周期噪声).其中imnoise2主要是利用函数rand()与randn(),分别生成均匀分布(U(0,1))与高斯分布(N(0,1))的随机数,配合find()函数进行噪声生成:imnoise3则利用第四章的知识,用fftshif