第10章 MATLAB图像处理

上传人:qiuji****ngye 文档编号:46054674 上传时间:2018-06-21 格式:PPT 页数:52 大小:2.29MB
返回 下载 相关 举报
第10章 MATLAB图像处理_第1页
第1页 / 共52页
第10章 MATLAB图像处理_第2页
第2页 / 共52页
第10章 MATLAB图像处理_第3页
第3页 / 共52页
第10章 MATLAB图像处理_第4页
第4页 / 共52页
第10章 MATLAB图像处理_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《第10章 MATLAB图像处理》由会员分享,可在线阅读,更多相关《第10章 MATLAB图像处理(52页珍藏版)》请在金锄头文库上搜索。

1、第10单元 MATLAB图像处理 10.1 数字图像的数学描 述 10.2 图像变换 10.3 模板运算与图像滤波 10.4 边缘检测 10.5 对象提取 第10单元 MATLAB图像处理 第10单元 MATLAB图像处理 10.1.1 图像坐标系和像素坐标图像坐标系和像素坐标如图10-1所示。10.1 数字图像的数学描述第10单元 MATLAB图像处理 图10-1 图像坐标系和像素坐标第10单元 MATLAB图像处理 10.1.2 图像的数学表达RGB模型中,彩色图像采用三维阵列 表示,它由下面的三个二维阵列构成:, ,彩色图像中的像素用向量 表示:第10单元 MATLAB图像处理 10.1

2、.3 图像读取、显示、存盘的MATLAB编程采用imread读图像函数、imshow显图像函数和imwrite写图像函数编程。程序如下: char1=D:My Documents; %指定图像文件存放的路径char2=Autumn; %指定欲存取图像文件的名称char3=Tulips; %指定另一个欲存取图像文件的名称char4=.jpg; %指定欲存取图像文件的扩展名xx=imread(char1 char2 char4);%按指定全路径读取图像并赋值给变量xxyy=imread(char1 char3 char4);%按指定全路径读取图像并赋值给变量yyfigure,imshow(xx);

3、 %将矩阵xx显示为屏幕图像figure,imshow(yy); %将矩阵yy显示为屏幕图像imwrite(xx,char1,Autumn1,char4,jpeg); %将矩阵xx按指定全路径和格式存盘imwrite(yy,char1,Tulips1,char4,jpeg); %将矩阵yy按指定全路径和格式存盘第10单元 MATLAB图像处理 10.2.1 彩色图像变换为灰度图像图像中的色彩数据,对某些研究问题而言是冗余信息,往往需要将彩色图像变换成灰度图像。灰度图像可用灰度矩 阵GR表征:10.2 图 像 变 换第10单元 MATLAB图像处理 采用rgb2gray函数编程将彩色图像变换为灰

4、度图像。程序如下:char1=D:My Documents; %指定图像文件读取的路径char2=Autumn; %指定欲读图像文件的名称char3=Tulips; %指定另一个欲读图像文件的名称char4=.jpg; %指定欲读图像文件的扩展名xx=imread(char1 char2 char4); %按指定全路径读取图像文件并赋值给变量xxyy=imread(char1 char3 char4); %按指定全路径读取图像文件并赋值给变量yygray_xx=rgb2gray(xx); %将彩色图像xx变为灰度图像gray_xxgray_yy=rgb2gray(yy); %将彩色图像yy变为

5、灰度图像gray_yyfigure,imshow(gray_xx); %将矩阵gray_xx显示为屏幕图像figure,imshow(gray_yy); %将矩阵gray_yy显示为屏幕图像程序执行的结果如图10-2所示。第10单元 MATLAB图像处理 (a) 图像1 (b) 图像2图10-2 彩色图像变换为灰度图像第10单元 MATLAB图像处理 10.2.2 彩色或灰度图像变换为二值图像采用Otsus方法计算阈值T,灰度大于T的像素群取值1,小于T的像素群取值0,灰度图变换成二值图,它把图像化分成了仅留欲处理对象和黑色背景的两个区域,使对象从 背景中凸显出来。二值化图像可用二值矩阵BW表

6、征,其元素值符合下面关系:第10单元 MATLAB图像处理 这一处理过程的关键是阈值的选择,采用Otsus阈值进行二值化处理,对原本具有二值倾向的图像,能使图像中的对象特征突出,保留较多的有用信息,便于后续的特征量提取,而对于二值倾向较弱的图像,亦倾向于保留尽可能多的有用信息。采用im2bw函数编程将彩色图像变换为二值图像。程序如下:第10单元 MATLAB图像处理 char1=D:My Documents; %指定图像文件读取的路径char2=Autumn; %指定图像文件的名称char3=Tulips; %指定另一个图像文件的名称char4=.jpg; %指定图像文件的扩展名xx=imre

7、ad(char1 char2 char4); %按指定全路径读取图像文件并赋值给变量xxyy=imread(char1 char3 char4); %按指定全路径读取图像文件并赋值给变量yybinary_xx = im2bw(xx,0.35); %将彩色图像xx变为二值图像binary_xxbinary_yy = im2bw(yy,0.65); %将彩色图像xx变为二值图像binary_xxfigure,imshow(binary_xx); %将矩阵binary_xx显示为屏幕图像figure,imshow(binary_yy); %将矩阵binary_yy显示为屏幕图像程序执行的结果如图10

8、-3所示。第10单元 MATLAB图像处理 (a) (b)图10-3 彩色图像转换为二值图像第10单元 MATLAB图像处理 10.2.3 灰度频数分布图以横坐标为像素灰度级(0255)、纵坐标为图像中相应灰度级像素的个数,绘制图像的灰度频数分布图。灰度频数分布是图像处理的重要辅助工具。采用imhist函数编程绘制图像的灰度频数分布图。程序如下:char1=D:My Documents; %指定图像文件存放的路径char2=Autumn; %指定欲存取图像文件的名称char3=Tulips; %指定另一个欲存取图像文件的名称char4=.jpg; %指定欲存取图像文件的扩展名xx=imread

9、(char1 char2 char4); %按指定全路径读取图像文件并赋值给变量xxyy=imread(char1 char3 char4); %按指定全路径读取图像文件并赋值给变量yy第10单元 MATLAB图像处理 gray_xx=rgb2gray(xx); %将彩色图像xx变为灰度图像gray_xxgray_yy=rgb2gray(yy); %将彩色图像yy变为灰度图像gray_yysubplot(221); imshow(gray_xx); %将矩阵gray_xx显示为屏幕图像title(图像的灰度化处理);subplot(222); imhist(gray_xx); %绘制图像gra

10、y_xx的灰度频数分布图xlabel(灰度级,FontSize,11,FontName,Arial);ylabel(频数,FontSize,11,FontName,Arial);title(图像的灰度分布);第10单元 MATLAB图像处理 subplot(223); imshow(gray_yy); %将矩阵gray_yy显示为屏幕图像title(图像的灰度化处理);subplot(224); imhist(gray_yy); %绘制图像gray_yy的灰度频数分布图xlabel(灰度级,FontSize,11,FontName,Arial);ylabel(频数,FontSize,11,Fo

11、ntName,Arial);title(图像的灰度分布);程序执行的结果如图10-4所示。第10单元 MATLAB图像处理 图10-4 图像的灰度频数分布图第10单元 MATLAB图像处理 10.2.4 图像代数运算两图像的加减乘除运算称作图像代数运算。可采用 MATLAB/imadd函数、imsubtract函数、immultiply函数和imdivide函数编程实现。采用imadd、imsubtract、immultiply、imdivide等函数编程实现代数运算。程序如下:char1=D:My Documents; %指定图像文件读取的路径char2=Follow; %指定第1个欲读取的

12、图像文件名char3=Bliss; %指定第2个欲读取的图像文件名char4=.jpg; %指定第1个图像文件的扩展名char5=.bmp; %指定第2个图像文件的扩展名xx=imread(char1 char2 char4); %按指定全路径读取第1个图像文件赋值给xxyy=imread(char1 char3 char5); %按指定全路径读取第2个图像文件赋值给yy第10单元 MATLAB图像处理 xxyy_add=imadd(xx,yy); %图像相加xxyy_subt=imsubtract(xx,yy); %图像相减xxyy_mult= immultiply(xx,yy); %图像相

13、乘xxyy_div=imdivide(xx,yy); %图像相除gray_xx=rgb2gray(xx); %第1个图像生成灰度图xx_comp=imcomplement(gray_xx); %灰度图像反片binary_yy=im2bw(yy,0.50); %生成二值图yy_comp=imcomplement(binary_yy);%二值图像反片subplot(2,2,1); imshow(xx); title(原图像xx);subplot(2,2,2); imshow(yy); title(原图像yy);第10单元 MATLAB图像处理 subplot(2,2,3); imshow(xxyy

14、_add); title(图像相加);subplot(2,2,4); imshow(xxyy_subt); title(图像相减);figure, subplot(2,2,1); imshow(xxyy_mult); title(图像相乘);subplot(2,2,2); imshow(xxyy_div); title(图像相除);subplot(2,2,3); imshow(xx_comp); title(灰度图像反片);subplot(2,2,4); imshow(yy_comp); title(二值图像反片);第10单元 MATLAB图像处理 利用图像矩阵直接进行代数运算应注意下述问题。

15、(1) MATLAB读入的图像矩阵一般是unit8或unit16格式,图像代数运算不支持这种格式,直接进行图像矩阵代数运 算需利用double函数将其变换为双精度数据;(2) 图像显示函数imshow要求图像矩阵的元素值在0与1之间,故图像矩阵需归一化;(3) 图像减法会产生负值,而图像负值是无定义的,图像矩阵需将负值变为正数;(4) 图像除法应避开除以0。程序执行的结果如图10-5所示。第10单元 MATLAB图像处理 图10-5 图像代数运算的生成图像第10单元 MATLAB图像处理 10.2.5 图像几何变换图像的缩放、剪切、平移、旋转、反转、延展、映射、内插、几何变形、几何校正、图像配准等操作称作图像的几何变换。采用imrotate、fliplr、imresize、imcrop等函数编程实现图像的几何变换。程序如下:char1=D:My Documents; %指定读取图像文件的路径char3=snow; %指定要读取的图像文件名char5=.bmp; %指定要读取的图像文件扩展名xx=imread(char1 char3 char5

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

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

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