您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 医学现状与发展 > MATLAB基础与实例进阶-13
2020/1/11机械工业出版社Page1第13章MATLAB数字图像处理【学习目标】熟悉MATLAB数字图像处理工具箱掌握MATLAB数字图像读写和类型转换掌握MATLAB数字图像变换和增强掌握MATLAB数字图像形态学处理2020/1/11机械工业出版社Page2第13章MATLAB数字图像处理MATLAB图像类型与转换13.1MATLAB图像读写和显示13.2MATLAB图像变换13.3MATLAB图像增强13.4MATLAB图像数学形态学处理13.52020/1/11机械工业出版社Page313.1MATLAB图像类型与转换13.1.1图像类型13.1.2图像类型转换2020/1/11机械工业出版社Page4MATLAB支持四种图像类型包括:二值图像索引图像灰度图像真彩色图像13.1.1图像类型2020/1/11机械工业出版社Page5二值图像二值图像是最简单的图像;每个像素只能取值0或者1,分别代表黑色和白色;一个二进制图像存储为一个逻辑矩阵。13.1.1图像类型——二值图像2020/1/11机械工业出版社Page6索引图像由颜色映射表和图像数据矩阵两部分组成;颜色映射表是一个m×3的double型矩阵,矩阵的每一行表示一种颜色,分别对应红、绿、蓝颜色分量,每个分量取值范围为[0,1];图像数据可以是single、double、uint8、uint16或logical类型。13.1.1图像类型——索引图像2020/1/11机械工业出版社Page7灰度图像灰度图像是一个数据矩阵,矩阵的每个元素表示对应位置的像素的灰度值;灰度图像的数据类型可以是uint8、uint16、int16、single或double。13.1.1图像类型——灰度图像2020/1/11机械工业出版社Page8真彩色图像真彩色图像又称RGB图像,用红、绿、蓝三个颜色分量的组合来表示一个像素的颜色值。一幅m×n的真彩色图像,MATLAB将其存储为一个m×n×3的多维数组。真彩色图像的数据类型可以是uint8、uint16、single或double。13.1.1图像类型——真彩色图像2020/1/11机械工业出版社Page9MATLAB图像工具箱所支持的四种类型图像可相互转换。常用的图像类型转换函数的语法形式和函数功能说明如下表:13.1.2图像类型转换2020/1/11机械工业出版社Page1013.1.2图像类型转换常用类型转化语法形式函数说明索引图像到灰度图像I=ind2gray(X,map)基于颜色图map将索引图像X转化为灰度图像索引图像到真彩色图像I=ind2rgb(X,map)基于颜色图map将索引图像X转化为真彩图像索引图像到二值图像BW=im2bw(X,map,level)基于level将索引图像X转化为黑白二值图像灰度图像到二值图像BW=im2bw(I,level)基于level将灰度图像I转化为黑白二值图像2020/1/11机械工业出版社Page11灰度图像到索引图像[X,map]=gray2ind(I,n)将灰度图像I转化成索引图像真彩图像到二值图像BW=im2bw(RGB,level)基于level将彩色图像RGB转化为二值图像真彩色图像到灰度图像I=rgb2gray(RGB)将真彩图像RGB转换为灰度图像I真彩色图像到索引图像[X,map]=rgb2ind(RGB,n)[X,map]=rgb2ind(RGB,tol)直接将真彩图像RGB转化为索引图像X并返回颜色图图像抖动转换图像X=dither(RGB,map)BW=dither(I)通过颜色图将RGB图像转化为近似的索引图X;或把灰度图像I转化为二值图像13.1.2图像类型转换2020/1/11机械工业出版社Page12【例13-1】撰写MATLAB程序,将灰度图像图像scenery.bmp转化成索引图像;将真彩图像green.bmp转化成灰度图像;将索引图像snow.bmp转化成二值图像。13.1.2图像类型转换2020/1/11机械工业出版社Page13[I1]=imread(scenery.bmp','bmp');[X1,map1]=gray2ind(I1,128);%灰度图像转化为索引图像subplot(2,3,1);imshow(I1);title('灰度图像scenery');subplot(2,3,4);imshow(X1,map1);title('转化后的索引图像scenery');I2=imread('green.bmp','bmp');X2=rgb2gray(I2);%真彩图像转化为灰度图像subplot(2,3,2);imshow('green.bmp');title('真彩图像green')subplot(2,3,5);imshow(X2);title('转化后的灰度图像green');[I3,map3]=imread('swan.bmp','bmp');[BW3]=im2bw(I3,map3,0.5);%索引图像转化为二值图像,阈值取0.5subplot(2,3,3);subimage(I3,map3);title('索引图像swan')subplot(2,3,6);subimage(BW3);title('转化后的二值图像swan');13.1.2图像类型转换2020/1/11机械工业出版社Page1413.1.2图像类型转换灰度图像scenery转化后的索引图像scenery真彩图像green转化后的灰度图像green索引图像swan200400600100200300400转化后的二值图像swan2004006001002003004002020/1/11机械工业出版社Page1513.2图像读写和显示13.2.1图像读写13.2.2图像显示2020/1/11机械工业出版社Page1613.2图像读写和显示MATLAB支持BMP、JPG、PCX、PNG、TIF等多种图像文件格式,MATLAB图像处理工具箱为图像文件的读写和显示提供了专门的函数。2020/1/11机械工业出版社Page1713.2.1图像读写—图像读入MATLAB中读取图像文件的函数有:imread和loadimread函数用于从图像文件中读入图像;load函数一般用于读取以mat文件保存的图像。imread函数常用语法形式如下:I=imread(filemname,fmt)[I,map]=imread(…)[…]=imread(filemname)2020/1/11机械工业出版社Page18MATLAB中保存图像文件的的函数有imwrite和save。imwrite函数用于将图像数据写入指定的图像文件中;save函数则可将图像数据保存为指定的mat文件。imwrite函数的常用语法形式如下:imwrite(I,filemname,fmt)imwrite(I,map,filemname,fmt)13.2.1图像读写—图像写入2020/1/11机械工业出版社Page19MATLAB的图像显示函数主要有:image、imagesc和imshow。image函数的常用语法形式如下:image(A)image(x,y,A)imshow函数的常用语法形式如下:imshow(I,n)imshow(I,[low,high])imshow(filename)H=imshow(…)13.2.2图像显示2020/1/11机械工业出版社Page20【例13-2】读入并显示灰度图像mountain.mat、索引图像snow.tif和真彩图像green.bmp。13.2.2图像显示mountain.matsnow.tifgreen.bmp2020/1/11机械工业出版社Page2113.3图像变换13.3.1图像离散傅里叶变换13.3.2图像离散余弦变换13.3.3图像离散小波变换2020/1/11机械工业出版社Page22图像变换是图像处理的重要研究内容之一,常用于图像的频域分析和图像压缩。MATLAB图像处理工具箱提供了几种常用的图像变换函数,包括:傅里叶变换、离散余弦变换和Random变换等。另外,小波变换工具包提供的小波变换也常用于图像的正交变换,本节将对这些图像变换进行介绍。13.3图像变换2020/1/11机械工业出版社Page23数字图像是二维离散矩阵,二维离散傅里叶变换与反变换公式如下:13.3.1图像傅里叶变换112()00(,)(,)uxvyMNjMNxyFuvfxye112()001(,)(,)uxvyMNjMNuvfxyFuveMN2020/1/11机械工业出版社Page24MATLAB中,实现图像离散傅里叶变换和反变换的函数是fft2和ifft2。函数fft2和ifft2的语法形式如下:F=fft2(X)F=fft2(X,m,n)F=ifft2(X)F=ifft2(X,m,n)13.3.1图像傅里叶变换2020/1/11机械工业出版社Page25【例13-3】利用二维离散傅里叶变换函数fft2对图像bridge.tiff进行离散傅氏变换处理并显示变换结果。13.3.1图像傅里叶变换(a)原图bridge(b)DFT变化后的频谱图2020/1/11机械工业出版社Page26离散余弦变换(DCT)是一种运算量小于DFT(离散傅里叶变换),而性能又要优于DFT的正交变换,常用于图像压缩,如JPG图像中就使用了DCT算法。图像数据的二维离散余弦对(2D-DCT)的定义如下:13.3.2图像离散余弦变换11002(21)(21)(,)()()(,)coscos22MNxyxuyvFuvCuCvfxyNNMN11002(21)(21)(,)()()(,)coscos22MNuvxuyvfxyCuCvFuvNNMN2020/1/11机械工业出版社Page27MATLAB中,实现图像离散余弦变换和反变换的函数是dct2、idct2和dctmtx。函数dct2和idct2的语法形式如下:D=dct2(X)D=dct2(X,m,n)D=idct2(X)D=idct2(X,m,n)函数dctmtx的语法形式如下:B=dctmtx(n)13.3.2图像离散余弦变换2020/1/11机械工业出版社Page28【例13-4】对图像home.tiff做离散余弦变换处理并显示结果。13.3.2图像离散余弦变换(a)原图home(b)DCT系数(b)DCT变化后的重构图像2020/1/11机械工业出版社Page29离散小波变换是对连续小波变换的尺度和位移按照2的幂次进行离散化得到的,又称二进制小波变换。离散小波函数定义如下:13.3.3图像离散小波变换/2/200,00000()()()jjjjjkjtkabtaaatkba2020/1/11机械工业出版社Page30MATLAB小波工具箱中的dwt2()和idwt2()函数可实现离散小波变换及其反变换,wavedec()和waverec()用于图像信号的多层小波分解和多层重构等。函数dwt2和反变换idwt2的语法形式如下:[cA,cH,cV,cD]=dwt2(X,'wname')[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)X=idwt2(cA,cH,cV,cD,'wname')X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R)13.3.3图像离散小波变换2020/1/11机械工业出版社Page31【例13-5】以barbara.bmp为例,对其进行2层离散小波变换并显示重构结果。13.3.3图像离散小波变换2020/1/11机械工业出版社Page3213.4图像增强13.4.1直方图灰度修正13.4.2直方图均衡化13.4.3图像噪声消除13.4.4同态滤波增强2020/1/11机械工业出版社Page33图像增强是数字图像处理的基本内容之一,其目的是使处
本文标题:MATLAB基础与实例进阶-13
链接地址:https://www.777doc.com/doc-2887327 .html