数字图像处理实验一_数字图像处理实验全

2020-02-28 其他范文 下载本文

数字图像处理实验一由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数字图像处理实验全”。

一、实验目的及内容 内容: 灰度变换和空间滤波 1.灰度变换

利用imadjust函数(可结合stretchlim函数)对图像对比度拉伸 2.直方图绘制、均衡和匹配

利用imhist,histeq函数完成图2.8及图2.11的功能 3.空间滤波

线性空间滤波:

利用滤波函数imfilter函数完成图2.16中b,c,d,e的图像平滑效果

利用fspecial函数生成average,disk,gauian滤波器完成图像的平滑效果

利用fspecial函数生成prewitt, sobel,laplacian滤波器完成图像的锐化效果

非线性空间滤波

利用中值滤波函数medfilt2去除椒盐噪声

二、实验原理

①、函数imadjust是一个基本的图像处理工具箱函数,用于对灰度级图像进行灰度变换。

g=imadjust(f,[low_in high_in],[low_out high_out],gamma),该函数将图像f中的灰度值映射为图像g中的新值,即将low_in至high_in之间的值映射到low_out至high_out之间的值。

②、函数imhist是处理图像直方图的核心函数

h=imhist(f,b),其中f为输入图像,h为其直方图,b是用来形成直方图的“容器”的数目。

③、函数histeq是实现直方图匹配的函数

g=histeq(f,hspec),其中f为输入图像,hspec为规定的直方图,g为输出图像,输出图像的直方图近似于指定的直方图hspec。

④、函数imfilter用来实现线性空间滤波

-1-g=imfilter(f,w,filtering_mode,boundary_options,size_options),其中f为输入图像,w为滤波模板,g为滤波后的结果。

用于平滑的滤波器有:’average’,’disk’,’gauian’ 用于锐化的滤波器有:’laplacian’,’prewit’,’sobel’

三、实验源代码及结果

1、灰度变换、直方图绘制、均衡和匹配 f=imread('anna.jpg')%读取anna.jpg图片 subplot(2,4,1)imshow(f),title('原图')%显示原图

f1=imadjust(f,[0.2 0.5],[ 0 1])%将图片的灰度级别在0.2至0.5之间的部分拉伸

至0到1之间

subplot(2,4,2)imshow(f1),title('灰度拉伸之后')%显示灰度拉伸之后的图片 subplot(2,4,3)imhist(f),title('原图直方图')f2=histeq(f,128)%进行直方图均衡化,灰度级数设为128 subplot(2,4,4)imhist(f2),title('均衡化')%显示均衡化之后的直方图 g=imread('bag.png')%读取bag.png图像

h=imhist(g)%生成bag.png图像的直方图赋值给向量h subplot(2,4,5)imhist(g),title('规定的直方图')f3=histeq(f,h)%进行直方图匹配 subplot(2,4,6)imshow(f3),title('直方图匹配')运行结果

2、线性空间滤波

a=imread('block.png')%读取block.png图像 figure,subplot(2,3,1)imshow(a),title('原图')w=1/(31*31)*ones(31)%生成31*31的全为1的矩阵,命名为w a1=imfilter(a,w)%利用imfilter函数进行滤波 subplot(2,3,2)imshow(a1)a2=imfilter(a,w,'replicate')%图像的大小通过复制图像边界外的值来扩展 subplot(2,3,3)imshow(a2)a3=imfilter(a,w,'symmetric')%图像的大小通过边界镜像反射来扩展 subplot(2,3,4)

-3-imshow(a3)a4=imfilter(a,w,'circular')%图像的大小通过将图像处理为二维周期函数的一个周期来扩展

subplot(2,3,5)imshow(a4)aa=im2uint8(a)a5=imfilter(aa,w,'replicate')subplot(2,3,6)imshow(a5)

b=imread('anna.jpg')figure,subplot(2,2,1)imshow(b),title('原图')w1=fspecial('average',[4])%生成average平滑滤波器 b1=imfilter(b,w1)%进行滤波 subplot(2,2,2)imshow(b1),title('average')w2=fspecial('disk',5)%生成disk平滑滤波器 b2=imfilter(b,w2)subplot(2,2,3)imshow(b2),title('disk')w3=fspecial('gauian',[3 3],0.5)%生成gauian平滑滤波器 b3=imfilter(b,w3)

-4-subplot(2,2,4)imshow(b3),title('gauian')

c=imread('anna.jpg')figure,subplot(2,2,1)imshow(c),title('原图')w4=fspecial('prewitt')%生成prewitt锐化滤波器 c1=imfilter(c,w4)subplot(2,2,2)imshow(c1),title('prewitt')w5=fspecial('sobel')%生成sobel锐化滤波器 c2=imfilter(c,w5)subplot(2,2,3)imshow(c2),title('sobel')w6=fspecial('laplacian')%生成laplacian锐化滤波器 c3=imfilter(c,w6)subplot(2,2,4)imshow(c3),title('laplacian')运行结果

3、非线性空间滤波

d=imread('anna.jpg')%读取anna.jpg图像,赋值给d d1=imnoise(d,'salt & pepper',0.3)%用imnoise函数对d生成椒盐噪声 figure,subplot(1,2,1)imshow(d1),title('被椒盐噪声污染的图像')d2=medfilt2(d1)&用中值滤波器进行滤波 subplot(1,2,2)imshow(d2),title('去除椒盐噪声的图像')运行结果

四、实验总结(心得体会)

通过这次实验,首先我熟悉了Matlab的基本操作,掌握了图像处理的基本操作,比如如何读一张图片进来、如何显示一张图片等等。这些都是最基本的操作。其次我知道了灰度变换的函数imadjust的使用,它是将选定的灰度级别范围变换为规定的范围,可以自由变换图像的灰度级别;还有掌握了如何画图像的直方图、将直方图均衡化等等。还学会了图像的滤波处理,通过函数imfilter进行滤波。常用的平滑滤波器有average,disk,gauian、锐化滤波器有prewitt, sobel,laplacian。还学会了用中值滤波去除椒盐噪声。这些都是一些比较初级的函数,后面还有很多图像处理方法需要学习。

《数字图像处理实验一.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
数字图像处理实验一
点击下载文档
相关专题 数字图像处理实验全 图像处理 数字 数字图像处理实验全 图像处理 数字
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文