1、MATLAB与图像处理,图像信息是人类认识世界的主要知识来源。国外学者的研究结果:人类所获得的外界信息有70以上是通过眼睛获得的。,数字图像处理:,利用计算机对图像进行加工和处理的过程应用范围: 遥感 气象预报 军事侦察 生物医学 。,数字图像处理的主要研究领域:,图像的数字化 图像变换 图像增强 图像恢复 图像分割 图像分析和理解 图像压缩,MATLAB的图像处理函数分类:,图像的几何操作 图像变换 图像分析和增强 图像压缩,图像格式和类型,真彩色图像(RGB图像)利用R、G、B三个分量表示一个像素的颜色。,0.6118 0.83920.6471 0.64710.6471 0.64710.7
2、765 0.83920.8078 0.80780.8078 0.80780.7412 0.70980.9373 0.93730.9373 0.9373,红,绿,蓝,图像格式和类型,索引色图像对不同颜色进行编号,组成一个调色板,图像数据记录像素对应的调色板颜色的序号。,灰度图像:只有图像的强度信息,没有颜色信息。,图像格式和类型,二值图像:只有黑白两种颜色的图像。,图像格式和类型,图像类型转换的函数:,im2bw( )将真彩色、索引色和灰度图像转换为二值图像。,例: load trees BW=im2bw(X,map,0.4); imshow(X,map) figure imshow(BW),图
3、像类型转换的函数:,ind2gray( )将索引色图像转换为灰度图像。,例: load trees J=ind2gray(X,map); imshow(X,map) figure imshow(J),图像类型转换的函数:,ind2rgb( )将索引色图像转换为真彩色图像。,例: load trees J=ind2rgb(X,map); imshow(X,map) figure imshow(J),图像类型转换的函数:,mat2gray( )将数据矩阵转换为灰度图像。 grb2gray( )将真彩色图像转换为灰度图像。 grb2ind( )将真彩色图像转换为索引色图像。,图像的输入输出:,imr
4、ead( )支持对cur、mp、df、ico、jpg、pcx、png、tif和xwd等格式图像的输入。imwrite( )支持对cur、mp、df、ico、jpg、pcx、png、tif和xwd等格式图像的输出。,图像的显示:,image( ) imshow( ) 两个函数均可用于数据和图像的显示。,图像增强:,改善视觉效果。 噪声抑制。,改善视觉效果的方法:,直方图均化右图太暗,看不清轮胎的细节,需要对图像进行增强处理。,I=imread(tire.tif); %读入图像 J=histeq(I); %直方图均化 subplot(1,2,1),imshow(I) %显示原始图像 subplot
5、(1,2,2),imshow(J) %显示增强后图像 figure subplot(1,2,1),imhist(I,64) %显示直方图 subplot(1,2,2),imhist(J,64),图像增强的一般处理:,原理:输入图像为f(x,y),处理后的图像为g(x,y),则图像增强的数学表达式为:g(X,Y)=T(f(X,Y) 其中:T表示输入、输出图像对应点的灰度映射关系。,例:对数变换,I=imread(pout.tif); imshow(I) I=double(I) %对数运算不支持uint8类型数据 J=log(I+1); figure,imshow(J,4,5),图像去噪声的实验:
6、,实验过程:1. 读入图像数据。2. 对图像添加噪声。3. 对带噪声的图像数据进行滤波处理。4. 显示处理后的图像。,添加噪声:,I=imread(eight.tif); J1=imnoise(I,gaussian,0,0.02);%对图像数据添加均值为0,方差为0.02的高斯噪声。 J2=imnoise(I,salt %对图像数据添加乘性噪声。 subplot(2,2,1),imshow(I) subplot(2,2,2),imshow(J1) subplot(2,2,3),imshow(J2) subplot(2,2,4),imshow(J3),添加噪声的结果:,去噪声处理:,邻域平均法:
7、,h=1 1 1;1 1 1;1 1 1; %产生滤波模板 h=h/9; %对模板归一化 J=conv2(J1,h); subplot(1,2,1),imshow(J1) subplot(1,2,2),imshow(J2),去噪声处理:,中值滤波:,J=medfilt2(J1); subplot(1,2,1),imshow(J1) subplot(1,2,2),imshow(J2),图像变换:,图像变换是图像处理的重要工具。通过变换,改变图像的表示域,可以对图像的后继处理带来极大的方便。 例如:傅立叶变换:图像的频域分析离散余弦变换: 使能量集中利于图像压缩。,傅立叶变换的例子:,load i
8、mdemos saturn2 imshow(saturn2) b=fft2(saturn2); figure imshow(log(abs(b),) colormap(jet(64); colorbar,离散余弦变换(DCT):,b=dct2(saturn2); figure imshow(log(abs(b),) colormap(jet(64); colorbar,图像压缩的基本原理:,b(abs(b)10)=0; %将DCT变换值小于10的元素置为0 K=idct2(b)/255; %对逆DCT变换归一化 figure imshow(K),边缘检测,边缘是目标与背景的分界线,通过提取边缘
9、可以分离目标和背景。,MATLAB的图像处理工具箱提供了函数edge来实现检测边缘的功能。,I=imread(west.tif); imshow(I) b=edge(I); figure imshow(b),edge()的使用方法:,edge(数据,检测方法,参数),微分算子检测方法:1. robertsmax(|f(i,j)-f(i+1,j+1)|, |f(i+1,j)-f(i,j+1)|)2. sobel,I=imread(rice.tif); imshow(I) b=edge(I ,roberts); figure imshow(b) c=edge(I ,sobel); figure imshow(c),拉普拉斯高斯算子一种二阶边缘检测算法。利用图像的二阶微分中的零点来检测边缘。,edge(I,log),较新的一种边缘检测方法:,I = imread(rice.tif); BW2 = edge(I,canny); imshow(BW2),