数字图像处理在matlab中的基本操作

上传人:自*** 文档编号:23251262 上传时间:2017-11-30 格式:DOC 页数:19 大小:1.67MB
返回 下载 相关 举报
数字图像处理在matlab中的基本操作_第1页
第1页 / 共19页
数字图像处理在matlab中的基本操作_第2页
第2页 / 共19页
数字图像处理在matlab中的基本操作_第3页
第3页 / 共19页
数字图像处理在matlab中的基本操作_第4页
第4页 / 共19页
数字图像处理在matlab中的基本操作_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《数字图像处理在matlab中的基本操作》由会员分享,可在线阅读,更多相关《数字图像处理在matlab中的基本操作(19页珍藏版)》请在金锄头文库上搜索。

1、数字图像处理在 matlab 中的应用1. 图像的缩放图像的缩放是图像的空间域变换操作,可以认为是在输入图像和输出图像之间进行像素-像素变换。图像插值操作是图像缩放的基本方法,基本原理是,估计像素点之间位置的像素值,将输入图像和输出图像的变换在数字图像的约束下得以完善,有效的填充图像可能出现的空白点。图像的插值包括三种方法:1.最近邻插值,该算法中,输出图像中每一个像素点的值就是与该点在输入图像中变换位置最临近采样点的值。2.双线性插值,该方法的输出像素值是它在输入图像中 2*2 邻域采样点的平均值。3.双三次插值,相比于双线性插值,其插值邻域大小为 4*4,插值效果好,但相应计算量也较大。M

2、atlab 图像处理工具箱中的函数 imresize 可以对图像进行缩放操作,同时指定以上所介绍的插值方法作为其函数。以下基于 matlab 实现图像“hd1.bmp”的不同方式的缩放(这里设置放大倍数为 2 倍)%图像缩放操作代码: J=imread(hd1.bmp); %图像的读入 x1=imresize(J,2); %将图像以最近邻插值放大两倍 x2=imresize(J,2,bilinear); %将图像以双线性插值放大两倍 x3=imresize(J,2,bicubic); %将图像以双三次插值放大两倍 figure,imshow(J) %图像输出显示 figure,imshow(x

3、1) figure,imshow(x2)figure,imshow(x3)输入输出图像对比图 1-1 原图输出图 1-2 最近邻插值放大 2 倍输出图 1-3 双线性插值放大 2 倍输出图 1-4 双三次插值放大 2 倍输出2. 图像的点处理-灰度变换/直方图调整点处理是通过像元亮度值(灰度值)的变换来实现的。灰度变换是一种简单实用的方法,它可使图像动态范围增大,图像对比度扩展,图像变清晰,特征明显。灰度变换可以分为比例线性变换、分段线性变换和非线性灰度变换。2.1 比例线性变换比例线性变换是对单波段逐个像元进行处理的,它是将原图亮度值动态范围按线性关系式扩展到指定范围或整个动态范围。假定原图

4、像 f(x,y)的灰度范围是a,b ,希望变换后图像的动态范围是c,d,则可以用一下公式来实现变换:(1-cabyxfcdyxf ),(),1)以下是比例线性变换的程序设计及实现: x=imread(airforce.bmp); %图像文件读入 I=rgbgray2(x); %该语句由后期修改,修改后影响原图输出效果 figure,imshow(I); %原图显示输出 f0=0;g0=0; f1=10;g1=10; f2=180;g2=1800; f3=255;g3=255; %定义点以确定线段(此处随机定义) figure,plot(f0,f1,f2,f3,g0,g1,g2,g3) axis

5、tight,xlabel(f),ylabel(g) title(intensitytransformation) %绘制变换曲线 r1=(g1-g0)/(f1-f0); b1=g0-r1*f0; r2=(g2-g1)/(f2-f1); b2=g1-r2*f1; r3=(g3-g2)/(f3-f2); b3=g2-r3*f2; %根据变量曲线点求出变量关系式 m,n=size(I); J=double(I); for i=1:mfor j=1:nf=J(i,j);g(i,j)=0;if(f=f1)&(f=f2)&(f figure,imshow(mat2gray(g) %输出变换后灰度图像以下是

6、程序运行结果:图 2-1 原图像图 2-2 绘制出的变换曲线图 2-3 比例线性变换处理后图像输出2.2 分段线性变换分段线性变换是为了突出人们感兴趣的目标或亮度值区间,要求局部扩展亮度值范围。它可以有效地利用有限个灰度级,达到最大限度增强图像中有用信息的目的。假设感兴趣的区域是(a, b) ,可以采用以下的分段变换公式:(2-byxfafcbayxfcdyxg ),(),(,)/(),(),(2)下面利用分段线性变换来对图像进行处理,假定感兴趣的区间是(30,180) ,可以得到分段线性变换程序如下:%分段线性变换 x=imread(airforce2.bmp); I=rgbgray2(x)

7、; %该语句由后期修改,修改后影响原图输出效果 figure,imshow(I) %显示原图像 f0=0;g0=0; f1=30;g1=10; f2=180;g2=220; f3=255;g3=255; %设点,给出感兴趣的区间 figure,plot(f0,f1,f2,f3,g0,g1,g2,g3) axistight,xlabel(f),ylabel(g) title(分段线性变换曲线 ) %绘制变换曲线 r1=(g1-g0)/(f1-f0); b1=g0-r1*f0; r2=(g2-g1)/(r2-r1); r2=(g2-g1)/(f2-f1); b2=g1-r2*f1; r3=(g3-

8、g2)/(f3-f2); b3=g2-r3*f2; %求变换关系式 m,n=size(I); J=double(I); for i=1:mfor j=1:nf=J(i,j);g(i,j)=0;if(f=f1)&(f=f2)&(f figure,imshow(mat2gray(g) %输出变换后图像运行以上程序,得到结果:图 3-1 原图像图 3-2 分段变换的变换曲线图 3-3 分段线性变换处理后图像输出2.3 非线性灰度变换非线性灰度变换对于要进行扩展的亮度范围是有选择的,扩展的程度是随着亮度值的变化而连续变化的,有两种方法:(1) 对数变换,作用对图像的低亮度区有较大的扩展而对高亮度区压缩

9、。(2) 指数变换,此种变换可以对图像的高亮度区给予较大的扩展。下面以对数变换为例,其目的与增强对比度相反,当原图的动态范围太大,超出了某些显示设备所允许的动态范围时,可采用对数形式的变换函数进行动态范围压缩:g=c log(1+f)。其中 c 是比例尺常数,下面采用对数形式的变换函数设计实现图像动态范围压缩:% 以对数变换对图像进行非线性灰度处理 x=imread(nv3.bmp); I=rgbgray2(x); %该语句后期由修改 figure,imshow(I)Warning: Image is too big to fit on screen; displaying at 67% In

10、 imuitoolsprivateinitSize at 73In imshow at 262 c=255/log(256); x=0:1:255; y=c*log(1+x); figure,plot(x,y) axistight,xlabel(f),ylabel(g) title(对数变化曲线 ) m,n=size(I); J=double(I); for i=1:mfor j=1:ng(i,j)=0;g(i,j)=c*log(J(i,j)+1);endend figure,imshow(mat2gray(g)运行以上程序得出结果:图 4-1 原图像图 4-2 对数变换曲线图 4-3 对数变

11、换后图像效果显示2.4 直方图均衡化一般情况下,如果图像的灰度分别集中在较窄的区间,从而引起图像细节的模糊,为了使图像细节清晰,并使一些目标得到突出,达到增强图像的目的,可通过改善各部分亮度的比例关系,即通过直方图的方法来实现。直方图均衡化是将一已知灰度概率密度分布的图像,经过某种变换变成一幅具有均匀灰度概率密度分布的新图像,其结果是扩展了像元取值的动态范围,从而达到了增强图像对比度的效果。下面是直方图均质化的变换源程序: x=imread(nv.bmp); %图像文件读入 y=rgb2gray(x); In imuitoolsprivateinitSize at 73In imshow at

12、 262 figure,imhist(y) %原图直方图输出 z=histeq(y); %直方图均值化 figure,imshow(y) %显示源图像Warning: Image is too big to fit on screen; displaying at 67% figure,imshow(z) %变换后图像输出Warning: Image is too big to fit on screen; displaying at 67% In imuitoolsprivateinitSize at 73In imshow at 262 figure,imhist(z) %变换后直方图输出

13、运行结果如下:图 5-1 原图像直方图图 5-2 原图像输出图 5-3 直方图均值化后图像输出图 5-4 均值化处理后的直方图3 空间域滤波空间域滤波一般可以分为线性滤波和非线性滤波两类。根据功能又可以分为平滑滤波和锐化滤波平滑的目的可分为两类:一类是模糊,目的是在提取较大的目标前去除太小的细节或将目标内的小间断连接起来;另一类是消除噪声。锐化可以用高通滤波器实现,锐化的目的是增强被模糊的细节。3.1 平滑滤波器平滑滤波器,它能减弱或消除傅里叶空间的高频分量,但不影响低频分量,因为高频分量对应图像中的区域边缘等灰度值具有较大较快变化的部分,滤波器将这些分量滤去可使图像平滑。线性平滑滤波包括均值滤波和 Wiener 滤波,非线性平滑滤波包括最小值滤波,中值滤波和最大值滤波。%均值滤波的实现 x=imread(chengzi.bmp); I=rgb2gray(x); imshow(I)Warning: Image is too big to fit on screen; displaying at 67% In imuitoolsprivateinitSize at 73In imshow at 262 K1=filter2(fspecial(average,3),I)/255; %3*3 的均值滤波 K2=filter2(fspecial(average

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号