matlable在图像处理中的应用PPT文件格式下载.ppt
《matlable在图像处理中的应用PPT文件格式下载.ppt》由会员分享,可在线阅读,更多相关《matlable在图像处理中的应用PPT文件格式下载.ppt(27页珍藏版)》请在冰豆网上搜索。
subplot(3,2,3);
H1=adapthisteq(H);
imshow(H1);
title(adapthisteq均衡后图);
2022/10/282022/10/28subplot(3,2,4);
imhist(H1);
title(adapthisteq均衡后直方图);
subplot(3,2,5);
H2=histeq(H);
imshow(H2);
title(histeq均衡后图);
subplot(3,2,6);
title(histeq均衡后直方图)2022/10/282022/10/28函数imadjust用于对灰度级图像进行灰度变换。
该函数的一般语法格式为:
g=imadjust(f,low-inhigh-in,low-outhigh-out,gamma)该函数将图像f中的灰度值映射为图像g中的新值,即将low-in至high-in之间的值映射到low-out至high-out之间的值,若gamma值小于1,则映射被加权值较高(较亮)的输出值,若gamma值小于1,则映射被加权值较低(较暗)的输出值。
若函数参量缺省,则gamma默认为1(线性映射)。
例:
直方图的对应变化和图像对比度的变化2022/10/282022/10/28二.频率域滤波平滑滤波器K=filter2(fspecial(average,3),I)/255;
fspecial(average,3):
用来创建3*3的均值滤波器Fspecial(h,I):
滤波函数I:
原图像矩阵中值滤波器K=medfilt2(I,3,3);
Medfilt2:
中值滤波器I:
原图像矩阵3,3:
窗宽imfilter是多维滤波,而filter2只能二维图像滤波。
2022/10/282022/10/282022/10/282022/10/28例一:
利用低通邻域平均模板进行平滑2022/10/282022/10/28例二:
中值滤波和平均滤波2022/10/282022/10/28三.图像复原与重建加噪与去噪使用函数imnoise对图像添加噪声基本语法形式如下:
g=imnoise(f,type,parameters)其中,f是输入图像g=imnoise(f,gaussian,m,var)将均值为m,方差为var的高斯噪声添加到图像f上。
默认值是均值是0,方差是0.01的噪声。
g=imnoise(f,localvar,v)将均值为0,局部方差为v的高斯噪声添加到图像f上,其中v是大小与f相同的一个数组,它在每个点包含了期望的方差值。
g=imnoise(f,localvar,image-intensity,var)将均值为0的高斯噪声添加到图像f上,其中噪声的局部方差var是图像f的灰度值的函数,自变量image-intensity和var是大小相同的向量,plot(image-intensity,var)绘制出噪声方差和图像灰度间的函数关系。
向量image-intensity必须是包含在范围0,1内的归一化灰度值。
g=imnoise(f,salt&
pepper,d)用椒盐噪声污染图像f,其中d是噪声密度,默认的噪声密度是0.05。
2022/10/282022/10/28例:
对一幅图像加噪并去噪2022/10/282022/10/28一.傅里叶变换MATLAB函数fft,fft2,fftn实现了傅里叶变换算法,分别计算一维,二维DFT和n维DFT。
函数ifft,ifft2和ifftn计算逆DFT。
使用傅里叶变换滤波时,需要对输入数据进行零填充。
此时,语法变为F=fft2(f,p,q)使用这一语法,fft2会对输入图像填充所需数目的0,以便结果函数的大小为p*q。
傅里叶谱可以使用函数abs获得:
s=abs(F)可以使用函数fftshift将变换的原点移动到频率矩形的中心。
语法为Fc=fftshift(F)与中心处亮度值占支配地位的8位显示相比,该谱中值的范围很大,通过对数变换解决这一问题:
s2=log(1+abs(Fc)2022/10/282022/10/28例一:
图象的FFT变换2022/10/282022/10/282022/10/282022/10/28例二:
图象的DCT变换2022/10/282022/10/28例三:
傅里叶变换的Matlab代码2022/10/282022/10/28二.离散余弦变换离散余弦变换是与傅里叶变换紧密相关的数学运算。
在傅里叶级数展开式中,如果被展开的函数是实偶函数,那么其傅里叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称之为离散余弦变换。
JPEG图像压缩算法将输入图像分割成8*8或16*16的数据块,对每个块计算二维DCT,然后DCT系数被量化,编码和传输。
为了方便对图像进行分块处理,经常需要用到函数blkproc,以便进行分块之后的变换处理。
具体调用形式如下:
B=blkproc(A,mn,fun,parameter1,parameter2,.)B=blkproc(A,mn,mbordernborder,fun,.)B=blkproc(A,indexed,.)图像以m*n为分块单位,对图像A进行处理,parameter1和parameter2是传递给fun函数的参数,mborder和nborder表示对每个m*n块上下进行mborder个单位,左右进行nborder个单位的扩充。
若扩充的像素值为0,fun函数对整个扩充后的分块进行处理。
2022/10/282022/10/28三.Radon变换Radon变换是与CT断层影响重建算法相关的数学变换,二维情况下Radon变换大致可以理解为一个平面内沿不同的直线(直线与原点的距离为d,方向角为A)对二维函数f(x,y)做线积分,得到的像F(d,A)就是函数f的Radon变换。
Radon函数具体使用如下:
R,xp=radon(I,theta);
theta参数表示旋转角度。
R的列包含了theta中每个角度的Radon变换;
向量xp包含沿x轴的对应坐标;
I的中心像素定义为floor(size(I)+1)/2),它是x轴上对应于x=0的像素。
Example:
计算一幅图像在0度和45度上的Radon变换。
2022/10/282022/10/28例一:
使用如下命令进行Radon变换2022/10/282022/10/28例二:
方形图像的Radon变换从0度一直计算到180度,间隔为12022/10/282022/10/28例三:
首先用radon函数计算图像I在一组旋转角度theta下的Radon变换R,然后用iradon函数根据R和Theta重建图像I。
2022/10/282022/10/28四.图像分割一:
点检测2022/10/282022/10/28二:
线检测2022/10/282022/10/28三.边缘检测1、用Prewitt算子检测图像的边缘I=imread(bacteria.BMP);
BW1=edge(I,prewitt,0.04);
%0.04为梯度阈值figure
(1);
imshow(I);
figure
(2);
imshow(BW1);
2、用不同值的LoG算子检测图像的边缘I=imread(bacteria.BMP);
BW1=edge(I,log,0.003);
%=2imshow(BW1);
title(=2)BW1=edge(I,log,0.003,3);
%=3figure,imshow(BW1);
title(=3)3、用Canny算子检测图像的边缘I=imread(bacteria.BMP);
BW1=edge(I,canny,0.2);
figure,imshow(BW1);
2022/10/282022/10/284、图像的阈值分割I=imread(blood1.tif);
imhist(I);
%观察灰度直方图,灰度140处有谷,确定阈值T=140I1=im2bw(I,140/255);
%im2bw函数需要将灰度值转换到0,1范围内figure,imshow(I1);
分别用sobel和laplacian算子来进行程序如下2022/10/282022/10/282022/10/282022/10/28比较提取边缘的效果可以看出sober算子是一种微分算子对边缘的定位较精确但是会漏去一些边缘细节。
而Laplacian-Gaussian算子是一种二阶边缘检测方法它通过寻找图象灰度值中二阶过零点来检测边缘并将边缘提取出来边缘的细节比较丰富。
通过比较可以看出Laplacian-Gaussian算子比sober算子边缘更完整效果更好。
2022/10/282022/10/28四.对灰度图像进行灰度分割处理2022/10/282022/10/28