《[数学]MATLAB应用于数字图像处理ppt课件.ppt》由会员分享,可在线阅读,更多相关《[数学]MATLAB应用于数字图像处理ppt课件.ppt(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MATLAB 应用于数字图像 分析和处理n 图像处理着重强调在图像之间进行的变换。虽然人们常用图像处理泛指各种图像技术,但比较狭义的图像处理主要指对图像进行各种加工以改善图像的视觉效果并为自动识别打基础,或对图像进行压缩编码以减少对其所需存储空间或传输时间、传输路径的要求。n 图像分析则主要是对图像中感兴趣的目标进行检测和测量,以获得它们的客观信息,从而建立对图像的描述。图像处理是一个从图像到图像的过程 图像分析是一个从图像到数据的过程 MATLAB 推出了功能更强大的适应于图像分析和处理的工具箱。利用此工具,我们可以方便地从各个方面对图像的性质进行深入的研究。在 MATLAB 中可用两种数据
2、类型来存储图像:双精度型(double)和无符号8 位整数型(uint8),图形命令对不同的数据类型做不同的处理。n MATLAB 支持的图形文件的格式包括:TIFF、BMP、JPEG、PCX、XWD 和 HDF;MATLAB 在图像处理中的应用都是由相应的 MATLAB 函数来实现。下面讨论如何利用 MATLAB 处理数字图像。支持的图像类型包括:索引图像、灰度图像、二进制图像、RGB 图像。TIFF:Tagged Image File Format处理1、4、8、24 位非压缩图像;处理 1、4、8、24 位packbit 压缩图像;文件内容包括:四部分 文件头(fileheader)、参
3、数指针表和参数域、参数数据表和图像数据bmp:windows bitmap1、4、8、24 位压缩图像;文件内容包括:文件头、位图信息数据块和图像数据jpegjpeg:joint photographic experts group joint photographic experts group图像压缩格式pcx:windows paintbrush处理1、4、8、24 位图像数据文件内容包括:文件头、图像数据、扩展调色板数据1.数字图像文件操作和图像显示n MATLAB 提供了图像文件读入函数 imread(),可用它来读入 BMP、HDF、JPEG、PCX、TIFF、XWD 等格式图像文
4、件。MATL AB 还提供了 imwrite()图像写出函数。显示图像函数有image()、imshow()等。I=imread(autumn.tif);image(I);x=imread(flowers.tif);imshow(x)rgb2gray()将rgb 彩色图像转换为灰度图。n clear all;x=imread(flowers.tif);n imshow(x)n x1=rgb2gray(x);n figure;imshow(x1)imcontour()画图像数据轮廓线(等高线、等值线)n clear all;x=imread(flowers.tif);n imshow(x)n x
5、1=rgb2gray(x);n figure;imshow(x1)n figure;imcontour(x1)imhist()画图像灰度直方图figure;imhist(x1)比较两幅图像灰度直方图n a=imread(tire.tif);n figure;n subplot(2,2,1);imshow(a);n subplot(2,2,3);imhist(a);n b=imread(lena256.bmp);n subplot(2,2,2);imshow(b);n subplot(2,2,4);imhist(b);灰度图像直方图比较2.图像的矩阵表示及基本运算n MATLAB 在处理图像时,
6、都是以向量、矩阵、数组的形式来表示图像,并进行各种运算。MATLAB 提供了图像的和、差等线性运算,以及卷积、相关、滤波等非线性运算。例如,conv2(I,J)实现 I、J 两幅图像的卷积。3.图像的数据类型与图像显示n 1.无符号8 位整型(uint8)图像数据的显示。n x=imread(lena256.bmp);n imshow(x);n 2.双精度(double)图像数据的显示。n x=imread(lena256.bmp);n x=double(x);n imshow(x);n*图像显示白色,原因是double 类型数据只在01 正常显示。需进行归一化。x=x/255;4.图像数据的
7、运算(1)n 1.x=imread(lena256.bmp);n x=x-100;n?Error using=-n Function-is not defined for values of class uint8.n uint8 数据无法计算,必须转化为double 类型。n 2.灰度值降低(降低亮度)n x1=(double(x)-100)/255;imshow(x1);原始图像与降低亮度后图像4.图像数据的运算(2)n 3.灰度值提高(增加亮度)n x2=(double(x)+100)/255;imshow(x2);4.图像数据的运算(3)n 3.灰度动态范围降低(降低对比度)n 方法:
8、使用一次直线映射n 假设原图像动态范围0M,降低灰度动态范围后动态范围0M/2,说明映射函数为:n y=x/2 注意:数据类型必须是double 类型!n 思考:编写程序完成4.图像数据的运算(4)n 4.灰度动态范围扩展(提高对比度)n 方法:使用一次直线映射n 假设原图像动态范围0M,扩展灰度动态范围后动态范围01.5M,说明映射函数为:n y=1.5*x n 注意:数据类型必须是double 类型!n 思考:编写程序完成5.图像增强n MATLAB 提供了 Gamma 校正、中值滤波、对比度调整、直方图均衡、自适应滤波等对图像进行处理。函数 imadjust()为对比度调整函数,用于调整
9、灰度值或颜色图。1.对比度增强Imadjust()调整图像亮度值或彩色图J=imadjust(I,low_in high_in,low_out high_out,gamma)RGB2=imadjust(RGB1,.)clear;x=imread(lena256.bmp);imshow(x);y=imadjust(x);figure;imshow(y)调整图像灰度动态范围灰度动态范围扩展(增强对比度)clear;x=imread(lena256.bmp);imshow(x);y=imadjust(x,0.3 0.7,);figure;imshow(y)RGB1=imread(football.j
10、pg);RGB2=imadjust(RGB1,.2.3 0;.6.7 1,);figure;subplot(211);imshow(RGB1)subplot(212);imshow(RGB2)调整彩色图色调(自学)n 直方图均衡化是图像处理中很重要的研究内容,它通过转换灰度图像亮度值或索引图像的颜色图值来增强图像对比度。n 图像的灰度统计直方图是 1 个 1-D 的离散函数.2.直方图均衡化直方图均衡化函数histeq()clear;x=imread(lena256.bmp);imshow(x);y=histeq(x);figure;imshow(y)6.图像的空域滤波(平滑和锐化)n 图像的
11、平滑主要用于噪声图像的降噪。n 图像的锐化主要用于图像的边缘增强。n 方法:图像的二维卷积n 函数格式:Y=CONV2(X,D,shape)n 其中:X 为待处理的二维图像,数据类型为double.n D 为滤波模板,为(2N+1)*(2N+1)的方阵.n shape 选项通常选same.n Y 为处理后的二维图像.(1)图像平滑n 用于对由于受噪声干扰而质量降低的图像降噪 低通滤波法、局部平均法、多帧平均法等(1.)图像加噪函数imnoise()J=imnoise(I,type,)常用噪声类型:gaussian 高斯噪声 salt&petter 盐椒噪声 speckle 乘法噪声n x=im
12、read(lena256.bmp);n x1=imnoise(x,gaussian,0,0.002);n x2=imnoise(x,salt&pepper,0.02);n figure;n subplot(121);imshow(x1);n subplot(122);imshow(x2);程序(2.)邻域平均平滑滤波方法:图像的二维卷积函数格式:Y=CONV2(X,D,shape)其中:X 为待处理的二维图像,数据类型为double;Y 为处理后的二维图像.shape 选项通常选same.D 为滤波模板,通常为3*3,5*5,7*7 的方阵。邻域平均滤波模板n 平滑模板所有元素均为正数。n 为
13、保证运算后灰度范围不变,要求模板所有元素之和为1.程序n x=imread(lena256.bmp);n x=double(x)/255;n x1=imnoise(x,gaussian,0,0.002);n D=ones(3)/9;n x2=conv2(x1,D,same);n figure;n subplot(121);imshow(x1);xlabel(加高斯噪声后的图像);n subplot(122);imshow(x2);xlabel(平滑滤波后的图像);n 可见,降噪的同时图像模糊了,随着模板的尺寸增大,降噪的效果增强,但图像也更加模糊.(3)二维中值滤波medfilt2()n x=
14、imread(lena256.bmp);n x=double(x)/255;n x1=imnoise(x,gaussian,0,0.002);n D=ones(3)/9;n x2=conv2(x1,D,same);n x3=medfilt2(x1,3 3);n figure;n subplot(221);imshow(x);xlabel(原始图像);n subplot(222);imshow(x1);xlabel(加高斯噪声后的图像);n subplot(223);imshow(x2);xlabel(邻域平均平滑滤波后的图像);n subplot(224);imshow(x3);xlabel(
15、中值滤波后的图像);n 可见,中值滤波效果优于领域平均平滑滤波.(5)锐化滤波(边缘增强)锐化滤波模板n 锐化模板中心元素为正,其它为负。n 为保证运算后灰度范围不变,要求模板所有元素之和为1.n x=imread(lena256.bmp);n x=double(x)/255;n D=-1-1-1;-1 9-1;-1-1-1;n x1=conv2(x,D,same);n figure;n subplot(121);imshow(x);xlabel(原始图像);n subplot(122);imshow(x1-x);xlabel(锐化滤波后的图像);n 可见,经锐化滤波后图像的边缘得到增强.图像
16、的空间分辨率程序如下:n x=imread(lena256.bmp);n mx,nx=size(x),n y=x(1:3:mx,1:3:nx);n my,ny=size(y),n figure;subplot(121);imshow(x);n subplot(122);imshow(y);通过降低采样率降低空间分辨率mx=256 nx=256my=86 ny=86n 明显可见空间分辨率降低,图像边缘出现马赛克的现象.图像的特殊处理马赛克程序如下:n x=imread(lena256.bmp);%读入图像n x=double(x)/255;%转换为双精度并归一化n y=x(101:200,101:200);%取出人脸矩阵yn jg=10;%定义马赛克方块的尺寸n m,n=size(y);%提取图像矩阵大小n z=zeros(size(y);%给输出矩阵分配空间n z(1:jg:m,1:jg:n)=y(1:jg:m,1:jg:n);n%提取原始图像对应各马赛克左上角数据给目标图像n z(1:jg,1:jg)=z(1,1);%对第一块进行马赛克处理n subplot(121);imshow(y);subplot(122);imshow(z);%显示结果