matlab与图像处理
MATLAB图像处理基础教程

MATLAB图像处理基础教程第一章:MATLAB图像处理简介MATLAB(Matrix Laboratory)是一种强大的数值计算和数据可视化软件,广泛应用于各个领域,包括图像处理。
图像处理是一门研究如何对数字图像进行分析、增强、重建和压缩的学科。
本教程将引导读者逐步了解MATLAB图像处理的基本概念和技术。
第二章:MATLAB图像的读取与显示在MATLAB中,可以使用imread函数读取不同格式的图像文件,并使用imshow函数显示图像。
此外,还可以使用imfinfo函数获取图像的详细信息,如分辨率、颜色空间和位深度等。
第三章:图像的灰度处理灰度处理是一种常见的图像预处理方法。
通过将彩色图像转换为灰度图像,可以减少图像的数据量,简化图像处理的复杂性。
在MATLAB中,可以使用rgb2gray函数将彩色图像转换为灰度图像,并使用imhist函数查看灰度图像的直方图。
第四章:图像的滤波处理滤波是一种常用的图像处理操作,用于对图像进行平滑、增强或去噪。
MATLAB提供了各种滤波函数,如均值滤波、中值滤波和高斯滤波等。
可以根据具体需求选择合适的滤波方法,并使用imfilter函数进行滤波处理。
第五章:图像的二值化处理图像的二值化是将图像转换为黑白两色的过程,常用于物体检测、识别和分割等应用。
在MATLAB中,可以使用im2bw函数将灰度图像转换为二值图像,并可以调整阈值来控制二值化的效果。
第六章:图像的几何变换几何变换是一种常见的图像处理操作,用于对图像进行旋转、缩放、平移和翻转等操作。
MATLAB提供了imrotate、imresize、imtranslate和flip函数等实现各种几何变换。
通过组合这些函数,可以实现复杂的图像变换。
第七章:图像的特征提取图像的特征提取是图像处理中的重要步骤,用于从图像中提取出具有代表性的信息。
在MATLAB中,可以使用各种特征提取函数,如imgradient、imhistogram和imcontour等。
Matlab中的模糊图像处理和图像模糊恢复技术

Matlab中的模糊图像处理和图像模糊恢复技术随着数字图像的广泛应用和发展,图像模糊成为一个重要的问题。
由于摄像器材或传输媒介等方面的限制,图像的清晰度可能受到一定程度的影响,导致图像模糊。
在实际应用中,图像的模糊问题会给图像解析、目标跟踪、计算机视觉等许多领域带来困扰。
为了改善模糊图像的质量,并解决图像模糊问题,Matlab提供了一系列的模糊图像处理和图像模糊恢复技术。
一、图像模糊的产生原因图像模糊一般是由光学系统的缺陷、运动物体、相机抖动等因素引起的。
光学系统的缺陷包括镜头的失真、散射、衍射等;运动物体指的是图像中的物体在拍摄过程中出现运动造成模糊;相机抖动是由于相机本身的不稳定性或者手持摄影造成的。
二、模糊图像处理的方法1.滤波方法滤波方法是最基本也是最常用的图像模糊处理方法。
在Matlab中,可以使用各种滤波器对图像进行处理,例如平滑滤波、高斯滤波、中值滤波等。
这些滤波器可以消除图像中的高频噪声,同时也会导致图像的模糊。
2.图像退化模型图像退化模型是描述图像模糊过程的数学模型。
常见的图像退化模型有运动模糊模型、模糊核模型等。
通过了解图像退化模型的特性,可以更准确地恢复图像的清晰度。
在Matlab中,可以根据图像退化模型进行图像恢复的研究和实现。
3.频域方法频域方法是一种基于图像频谱的模糊图像处理方法。
通过对图像进行傅里叶变换,可以将图像从空间域转换到频率域,然后在频率域进行处理,最后再进行逆傅里叶变换得到恢复后的图像。
在Matlab中,可以利用fft2函数进行傅里叶变换和逆傅里叶变换,实现频域方法对图像的处理。
三、图像模糊恢复技术1.盲去卷积算法盲去卷积算法是一种不需要知道图像退化模型的图像恢复方法。
通过对模糊图像进行去卷积处理,可以尽可能地恢复图像的清晰度。
在Matlab中,可以使用盲去卷积相关的函数和工具箱实现图像模糊恢复。
2.基于深度学习的图像超分辨率重建技术深度学习技术如今在计算机视觉领域取得了巨大的成功。
使用Matlab进行光学图像处理和计算机视觉

使用Matlab进行光学图像处理和计算机视觉在当今数字化时代,光学图像处理和计算机视觉已成为科学研究和工程应用中不可或缺的重要领域。
随着现代科技的快速发展,计算机视觉在人们的日常生活中发挥着越来越重要的作用。
而Matlab作为一种强大的科学计算软件,具备优秀的图像处理和计算机视觉功能,被广泛应用于这一领域。
光学图像处理是指通过光学器件、传感器或电子设备等将外界的光信号转换为数字图像,并对该图像进行各种处理和分析。
首先,在图像处理的前期工作中,我们需要对图像进行预处理。
在Matlab中,可以利用图像增强、滤波和去噪等技术对图像的质量进行提升。
例如,可以通过对比度增强、直方图均衡化和锐化等方法提高图像的清晰度和视觉效果。
同时,利用滤波器对图像进行去噪处理,可以有效消除由于图像采集和传输过程中引入的噪声,提高图像的信噪比。
接下来,在图像处理的中期工作中,我们可以利用Matlab提供的函数和工具箱进行图像分割和特征提取。
图像分割是将图像分解为多个具有相似特征的区域的过程,常用的方法包括阈值分割、边缘检测和区域生长等。
通过图像分割,我们可以将图像中的目标物体从背景中提取出来,为后续的目标检测、跟踪和识别等任务提供支持。
而图像特征提取则是从图像中提取出具有区分度的特征信息,通常包括颜色、纹理、形状和边缘等。
利用这些特征,可以实现对图像中目标物体的识别和分类。
最后,在图像处理的后期工作中,我们可以利用Matlab提供的函数和工具箱进行图像重建和图像合成。
图像重建是指通过一系列的数学和物理模型,对已知图像进行恢复或重建的过程。
例如,通过利用MATLAB中提供的反卷积算法,可以对由于传感器或光学系统等原因引起的图像模糊进行修复。
同时,图像合成是将不同来源的图像进行融合和合成的过程。
例如,通过融合可见光图像和热红外图像,可以实现对夜间目标的检测和识别。
除了光学图像处理,计算机视觉也是一个快速发展的研究领域。
计算机视觉通过模仿人类的视觉系统,利用计算机对数字图像和视频进行分析和理解。
如何在Matlab中进行图像处理与图像识别的实用技巧

如何在Matlab中进行图像处理与图像识别的实用技巧Matlab是一款强大的科学计算软件,广泛应用于图像处理和图像识别领域。
在这篇文章中,我们将探讨一些在Matlab中进行图像处理和图像识别的实用技巧。
一、图像预处理在进行图像处理前,我们通常需要对原始图像进行预处理,以提高后续处理的效果。
图像预处理的目标包括去噪、增强和归一化等。
1.1 去噪图像中常常存在各种噪声,如高斯噪声、椒盐噪声等,这些噪声会影响后续处理的准确性。
Matlab提供了多种去噪方法,其中最常用的是使用统计滤波器,如均值滤波器、中值滤波器和高斯滤波器等。
这些滤波器能够有效地减少图像中的噪声,并保持图像的细节。
1.2 增强图像增强可以使图像更加清晰、对比度更强、细节更明显。
在Matlab中,可以使用直方图均衡化、灰度拉伸等方法进行图像增强。
直方图均衡化通过对图像的灰度级进行重新映射,使得图像的直方图分布更加均匀,从而提高图像的对比度和细节。
而灰度拉伸则通过调整图像的灰度级范围,使得图像的亮度更加均衡。
1.3 归一化当我们需要对不同尺寸、不同亮度、不同对比度的图像进行处理时,通常需要将它们归一化到相同的尺寸、亮度和对比度。
在Matlab中,可以使用像素重采样和直方图匹配等方法进行图像归一化。
像素重采样通过重新排列图像的像素来改变图像的尺寸,而直方图匹配则通过调整图像的直方图分布来改变图像的亮度和对比度。
二、图像特征提取图像特征提取是图像识别的关键步骤,它可以将图像中的信息抽象成一组用于表示图像的特征。
在Matlab中,常用的图像特征包括颜色特征、纹理特征和形状特征等。
2.1 颜色特征颜色是图像中最直观的特征之一,它可以用于区分不同目标或者图像的不同部分。
在Matlab中,可以使用颜色直方图、颜色矩和颜色共生矩阵等方法来提取图像的颜色特征。
颜色直方图统计了图像中每个颜色的像素数目,而颜色矩则描述了图像的颜色分布情况。
颜色共生矩阵则反映了不同颜色之间的相对分布情况,从而提取出图像的纹理特征。
基于MATLAB的图像识别与处理系统设计

基于MATLAB的图像识别与处理系统设计图像识别与处理是计算机视觉领域的重要研究方向,随着人工智能技术的不断发展,基于MATLAB的图像识别与处理系统设计变得越来越受到关注。
本文将介绍如何利用MATLAB进行图像识别与处理系统设计,包括系统架构、算法选择、性能优化等方面的内容。
一、系统架构设计在设计基于MATLAB的图像识别与处理系统时,首先需要考虑系统的整体架构。
一个典型的系统架构包括以下几个模块:图像采集模块:负责从各种来源获取原始图像数据,可以是摄像头、传感器等设备。
预处理模块:对采集到的图像数据进行预处理,包括去噪、灰度化、尺寸调整等操作,以便后续的处理。
特征提取模块:从预处理后的图像中提取出有用的特征信息,这些特征将用于后续的分类和识别。
分类器模块:采用机器学习或深度学习算法对提取到的特征进行分类和识别,输出最终的结果。
结果展示模块:将分类和识别结果展示给用户,可以是文字描述、可视化界面等形式。
二、算法选择与优化在基于MATLAB进行图像识别与处理系统设计时,算法选择和优化是至关重要的环节。
以下是一些常用的算法和优化技巧:图像处理算法:MATLAB提供了丰富的图像处理工具箱,包括滤波、边缘检测、形态学操作等功能,可以根据具体需求选择合适的算法。
特征提取算法:常用的特征提取算法包括HOG(Histogram of Oriented Gradients)、SIFT(Scale-Invariant Feature Transform)等,选择合适的算法可以提高系统性能。
分类器算法:MATLAB中集成了多种机器学习和深度学习算法,如SVM(Support Vector Machine)、CNN(Convolutional Neural Network)等,可以根据数据特点选择最适合的分类器。
性能优化:在实际应用中,为了提高系统性能和响应速度,可以采用并行计算、GPU加速等技术对算法进行优化。
三、实例分析为了更好地理解基于MATLAB的图像识别与处理系统设计过程,我们以一个实例进行分析:假设我们需要设计一个人脸识别系统,首先我们需要收集大量人脸图像数据,并对这些数据进行预处理和特征提取。
如何进行MATLAB图像处理

如何进行MATLAB图像处理一、引言图像处理是计算机视觉和图像分析领域中的重要任务之一。
而MATLAB是一种强大的数学计算软件,也被广泛应用于图像处理。
本文将介绍如何使用MATLAB进行图像处理,并探讨一些常见的图像处理技术。
二、图像处理基础在开始使用MATLAB进行图像处理之前,我们需要了解一些基础知识。
一个图像通常由像素组成,每个像素都有一个灰度值或者RGB(红绿蓝)三个通道的值。
图像的处理可以分为两个主要方面:空间域处理和频域处理。
1. 空间域处理空间域图像处理是指直接对图像的像素进行操作,常见的处理方法包括亮度调整、对比度增强和图像滤波等。
MATLAB提供了一系列函数和工具箱来进行这些处理。
例如,要调整图像的亮度,可以使用imadjust函数。
该函数可以通过调整输入图像的灰度值范围,实现亮度的增强或者降低。
下面是一个简单的例子:```matlabI = imread('image.jpg'); % 读取图像J = imadjust(I,[0.2 0.8],[0 1]); % 调整亮度范围imshow(J); % 显示图像```2. 频域处理频域图像处理是指将图像从空间域转换到频域进行处理,常见的处理方法包括傅里叶变换和滤波等。
MATLAB提供了fft和ifft等函数来进行频域处理。
例如,要对图像进行傅里叶变换,可以使用fft2函数。
该函数将图像转换为频率域表示,可以进一步进行滤波等处理。
下面是一个简单的例子:```matlabI = imread('image.jpg'); % 读取图像F = fft2(I); % 傅里叶变换F = fftshift(F); % 频率域中心化imshow(log(1 + abs(F)),[]); % 显示频率域图像```三、图像处理技术了解了图像处理的基础知识后,我们可以探索一些常见的图像处理技术。
以下将介绍几个常用的技术,并给出相应的MATLAB代码示例。
在MATLAB中使用深度学习进行图像处理

在MATLAB中使用深度学习进行图像处理随着人工智能和机器学习的发展,深度学习在图像处理领域日益重要。
MATLAB作为一种强大的数学计算平台,提供了丰富的工具和函数,用于应用深度学习算法进行图像处理。
本文将介绍如何在MATLAB中使用深度学习进行图像处理,并探讨一些常用的技术和应用。
I. 深度学习基础在介绍如何在MATLAB中使用深度学习进行图像处理之前,我们先来了解一些深度学习的基础知识。
深度学习是一种基于神经网络的机器学习方法,通过多层非线性处理单元来学习输入数据的表示和特征。
它的核心是神经网络模型,其中最常用的是卷积神经网络(Convolutional Neural Network, CNN)。
CNN模型由输入层、卷积层、池化层、全连接层和输出层组成,通过多层卷积和池化操作提取图像的局部特征,并通过全连接层进行分类或回归任务。
II. MATLAB中的深度学习工具箱MATLAB提供了深度学习工具箱(Deep Learning Toolbox),其中包含了一系列用于构建、训练和评估深度学习模型的函数和工具。
在使用MATLAB进行图像处理时,我们可以利用深度学习工具箱中的函数来构建和训练图像分类器、目标检测器等模型。
要使用深度学习工具箱,首先需要安装和配置MATLAB深度学习工具箱,具体方法可以参考MATLAB官方文档。
安装完成后,通过调用工具箱中的函数,可以快速构建和训练深度学习模型。
III. 图像分类任务图像分类是深度学习在图像处理中的一项重要任务。
在MATLAB中,我们可以使用深度学习工具箱中的卷积神经网络函数(如alexnet、vgg16、resnet50等)来构建和训练图像分类器。
图像分类器的训练过程通常包括数据准备、网络构建、网络训练和网络评估四个步骤。
首先,需要准备一个带有标签的数据集,该数据集包含图像样本和对应的标签信息。
接下来,可以通过调用深度学习工具箱中的函数来构建网络模型,并根据训练集进行网络训练。
MATLAB 图像处理命令使用

MATLAB 图像处理命令使用1.MATLAB中图像处理的一些简单函数A、imreadimread函数用于读入各种图像文件,其一般的用法为[X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为图像的格式,filename为读取的图像文件(可以加上文件的路径)。
例:[X,MAP]=imread(’flowers.tif’,’tif’);比较读取二值图像,灰度图像,索引图像,彩色图像的X和MAP的特点,可以利用size 函数用来显示数组的维数,了解数据的特点。
B=size(a) 返回数组a 的维数。
B、imwriteimwrite函数用于输出图像,其语法格式为:imwrite(X,map,filename,fmt)imwrite(X,map,filename,fmt)按照fmt指定的格式将图像数据矩阵X和调色板map写入文件filename。
C、imfinfoimfinfo函数用于读取图像文件的有关信息,其语法格式为imfinfo(filename,fmt)imfinfo函数返回一个结构info,它反映了该图像的各方面信息,其主要数据包括:文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、文件的宽度、每个像素的位数、图像的类型等。
2.MATLAB中图像文件的显示imshowimshow函数是最常用的显示各种图像的函数,其语法如下:imshow(X,map)其中X是图像数据矩阵,map是其对应的颜色矩阵,若进行图像处理后不知道图像数据的值域可以用[]代替map。
(1)二进制(二值)图像显示方法,在MATLAB中一幅二值图像是uint8或双精度的,该矩阵仅包含0和1。
如果希望工具箱中的函数能将图像理解为二进制的,那么所有数据都要是逻辑数据,必须对其进行设置(将所有数据标志均设置on).可以对数据利用“~”取反操作实现图像逆转即黑白反色。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于MATLAB在数字图像复原技术中应用的文献综述摘要:图像复原技术在图像处理领域中具有非常重要的地位,该技术能够最大程度地恢复图像的本来面貌图像复原技术的重点在于找出导致图像失真的原因,并针对该原因对失真图像进行反处理,以此来获取清晰的图像。
文本对四个图像复原算法(维纳滤波算法;约束最小二乘(正则)滤波算法;迭代非线性复原算法;盲解卷积算法)的图像复原原理进行了说明,同时对上述算法进行了仿真实现,并分析了实验的结果。
通过仿真出来的结果,我们可以很清楚的看出维纳滤波算法所得到的复原图像比较清晰,但盲解卷积算法在同一情况下得到的复原图像就不太理想。
然而,在不知道失真信息的情况下应用盲解算法恢复图像就会得到比较好的效果。
本文在对相关图像复原技术文献资料搜集及整理基础上进行梳理及归纳。
关键词:数字图像处理;图像复原;MATLAB随着计算机技术的迅猛发展,人们对数字图像的依赖日益增强。
但是由于设备或环境等因素的影响,我们有时候无法得到令人满意的清晰图像。
这时就需要图像复原技术对降晰的图像进行处理。
具体来说,就是找出导致图像降晰的机制,并针对该机制对图像进行反处理,最终获得清晰的图像。
[1]数字图像在获取的过程中,由于光学系统的像差、光学成像衍射、成像系统的非线性畸变、摄影胶片的感光的非线性、成像过程的相对运动、大气的湍流效应、环境随机噪声等原因,图像会产生一定程度的退化.因此,必须采取一定的方法尽可能地减少或消除图像质量的下降,恢复图像的本来面目,这就是图像复原,也称为图像恢复。
图像复原是试图利用退化过程的先验知识使已退化的图像恢复本来面目,即根据退化的原因,分析引起退化的环境因素,建立相应的数学模型,并沿着使图像降质的逆过程恢复图像。
[2]文献的梳理与归纳:(一)数字图像处理的复原[3]下面介绍一些图像复原的背景,包括进行图像复原的原因和图像复原模型两个方面的内容。
1、影响图像质量的原因影响图像质量的因素主要有下面一些:1、图像捕获过程中镜头发生了移动,或者暴光时间过长;2、场景位于焦距以外、使用了广角镜、大气干扰或短时间的暴光导致捕获到的光子减少;3、供焦显微镜中出现散光变形。
2、图像复原模型一幅质量改进或退化的图像可以近似地用方程g=Hf+n表示,其中g为图像,H为变形算子,又称为点扩散函数(PSF),f为原始的真实图像,n为附加噪声,它在图像捕获过程中产生并且是图像质量变坏。
上面的模型中,PSF是一个很重要的因素,它的值直接影响到复原后图像的质量。
由于许多种退化都可以用线性的位移不变模型来近似,这样可以把线性系统种的许多数学工具如线性代数用于求解图像复原问题,从而得到简捷的公式和快速的运算方法。
3、图像复原的原理图像的复原就是要尽可能恢复退化图像的本来面目,它是沿图像降质的逆向过程进行[8]。
典型的图像复原是根据图像退化的先验知识建立一个退化模型,以此模型为基础,采用各种逆退化处理方法进行恢复,使图像质量得到改善。
可见,图像复原主要取决于对图像退化过程的先验知识所掌握的精确程度。
图像复原的一般过程:分析退化原因——建立退化模型——反映推演——恢复图像。
所以图像恢复一般要分两步:首先通过系统辨识方法求解h ,然后采用相应算法由模糊图像g(x,y)和点扩展函数h(x,y)来恢复。
(二) matlab在图像复原中应用[4]1、 MATLAB图像恢复函数的介绍的图像处理工具箱提供了 4 个图像恢复函数,用于实现图像的恢复操作,按照其复杂程度列举如下:· deconvwnr 函数:使用维纳滤波恢复;· deconvreg函数:使用波约束最小二乘滤波恢复;· deconvlucy函数:使用 Lucy- Richardson 恢复;除了以上3个恢复函数外,还可以使用 MATLAB自定义的恢复函数。
[5]2 、维纳滤波恢复的 MATLAB实现维纳滤波恢复函数 deconvwnr 的调用格式: J=deconvwnr(I,PSF,NCORR,ICORR)其中, I 表示输入图像, PSF 表示点扩散函数, NSR (默认值为 0)、NCORR 和 ICORR 都是可选参数,分别表示信噪比、噪声的自相关函数、原始图像的自相关函数.输出参数 J 表示恢复后的图像。
从恢复的图像来看,效果还是可以的,因为这里采用了真实 PSF 函数来恢复,但是实际生活当中大多数情况下PSF 是不知道的,所以要按照具体情况具体分析。
然后再恢复图像。
3、约束最小二乘滤波恢复的 MATLAB实现约束最小二乘滤波恢复函数 deconvreg的调用格式:J=deconvreg(I,PSF,NP,LRANGE,REGOP) 其中,I 表示输入图像,PSF 表示点扩散函数,NP、 LRANGE(输入)和 REGOP是可选参数,分别表示图像的噪声强度、拉氏算子的搜索范围和约束算子,同时,该函数也可以在指定的范围内搜索最优的拉氏算子。
利用振铃抑制恢复图像是3种中恢复效果最好的,其他几种方法也可以恢复但是比较模糊,效果不是很明显。
4、 Lucy- Richardson恢复的MATLAB实现Lucy- Richardson 算法是目前世界上应用最广泛的函数恢复技术之一,它是一种迭代方法。
MATLAB提供的 decon-vlucy函数还能够用于实现复杂图像重建的多种算法中,这些算法都基于 Lucy- Richardson最大化可能性算法.deconvlucy函数的调用格式: J=deconvlucy ( I, PSF, NU-MIT,DAMPAR, WEIGHT,READOUT, SUBSMPL)其中, I 表示输入图像.PSF表示点扩散函数. 其他参数都是可选参数:NUMIT表示算法的重复次数,默认值为 10; DAMPAR表示偏差阈值,默认值为 0 (无偏差); WEIGHT表示像素加权值,默认值为原始图像的数值; READOUT表示噪声矩阵,默认值为0; SUBSMPL表示子采样时间,默认值为 1。
5、盲解卷积恢复的 MATLAB实现前面几种图像恢复方法都是在知道模糊图像的点扩展函数的情况下进行的,而在实际应用中,通常都要在不知道点扩展函数的情况下进行图像恢复。
盲解卷积恢复就是在这种应用背景下提出的。
盲解卷积恢复是利用原始模糊图像,同时估计 PSF和清晰图像的一种图像恢复方法。
MATLAB提供了 deconvblind 函数用于实现盲解卷积。
盲解卷积算法一个很好的优点就是,在对失真情况毫无先验知识的情况下,仍然能够实现对模糊图像的恢复操作。
deconvblind函数的调用格式:[J, PSF] =deconvblind (I,INITPSF,NUMIT,DAMPAR,WEIGHT,READOUT) 其中, I 表示输入图像, INITPSF 表示 PSF的估计值, NUMIT表示算法重复次数, DAMPAR 表示偏差阈值,WEIGHT用来屏蔽坏像素, READOUT表示噪声矩阵, J 表示恢复后的图像(三)图像复原的MATLAB实现举例1、用Wiener滤波器进行复原用Deconvwnr函数,采用Wiener滤波器恢复图像。
在图像的频率特征和附加噪声已知的情况下,采用Wiener去卷积比较有效[9]。
程序代码:I=imread('');%I = I(10+[1:256],222+[1:256],:);figure;imshow(I);title('Original Image');PSF=fspecial('gaussian',7,7);%点扩散函数Blurred=imfilter(I,PSF,'symmetric','conv');%加模糊V=;BlurredNoisy=imnoise(Blurred,'gaussian',0,V);%将均值为0,方差为V的的高斯噪声加到图像Blurred中figure;imshow(BlurredNoisy);wnr1=deconvwnr(Blurred,PSF);%deconvwnr 函数:使用维纳滤波恢复;figure;imshow(wnr1);(a)原图(b)模糊化效果(c)复原效果图复原效果如上图所示,其中图(a)是读取的源图像,图(b)是加高斯噪声后的模糊化图像,图(c)是利用Wiener滤波器恢复的图像。
由此可见用Wiener滤波器进行图像复原得到的效果不佳,但这主要原因是由PSH决定的,如果将上述代码中的PSF=fspecial('gaussian',7,7);改为PSF=fspecial('gaussian',7,7);,恢复的效果就大大的提高了,如下图所示:该图为改过PSF函数后的复原图。
2利用Lucy-Richardson算法复原Deconvlucy 函数实现一个加速衰减的Lucy-Richardson算法。
本函数采用优化技术和波松统计量进行多次迭代实现对图像的复原。
程序代码:I=imread('');%I = I(10+[1:256],222+[1:256],:);figure;imshow(I);PSF=fspecial('gaussian',7,7);Blurred=imfilter(I,PSF,'symmetric','conv');V=;BlurredNoisy=imnoise(Blurred,'gaussian',0,V);figure;imshow(BlurredNoisy);luc1=deconvlucy(Blurred,PSF);%deconvlucy函数:使用Lucy- Richardson 恢复;figure;imshow(luc1);(a)原图(b)模糊化效果(c)复原效果图复原效果如上图所示,其中图(a)是读取的源图像,图(b)是加高斯噪声后的模糊化图像,图(c)是利用Lucy-Richardson算法恢复的图像。
由此可见利用 Lucy- Richardson算法可以较好的恢复图像。
除了上面介绍的图像复原方法以外,还有其他一些复原方法,例如基于傅立叶变换的图像复原法、基于小波变换的方法和基于神经网络的方法等等,这些方法在图像复原中都能产生较好的效果。
然而任何一种单一的方法并不能取得很好的复原效果,所以有些研究人员结合两种方法,发挥出它们的长处来对图像进行复原。
Mari.[6]参考文献[1]吴学锋、吴蔚、张伟成.Matlab在多图像复原中的应用.中文核心期刊《微计算机信息》《管控一体化》2008年第 24卷第12-3期[2]何东健. 数字图像处理[M]. 西安:西安电子科技大学出版社, 2003: 261~ 279[3] MATLAB的图像处理工具箱中图像复原函数的比较[4]孟永定、马佳 .基于MATLAB实现数字图像恢复.电脑学习 2007年2月第1期[5] 罗军辉,冯平,哈力旦·A. 在图像处理中的应用[M] . 北京:机械工业出版社,2005: 257~ 277.[6]孟军. 数字图像复原算法研究. 贵州大学硕士论文.[7]刘翠艳。