Matlab学习高阶篇(一)—— 图像处理(上)

本文介绍了MATLAB图像处理工具箱的功能,包括查询图像信息、读写图像文件、显示图像,以及执行图像的几何运算如平移、镜像、缩放、旋转和剪切。重点讨论了imread、imwrite和imshow函数的使用,并展示了各种几何变换的实例。
摘要由CSDN通过智能技术生成


matlab中的图像处理工具箱提供了一套全方位的标准算法和图像工具,用于进行图像处理、分析、可视化和算法开发,可用它对有噪图像进行去噪或对退化图像进行还原、增强以获得更高的清晰度,提取特征,分析形状和纹理,以及对两个图像进行匹配。

一、图像文件的操作

用户可以用多种数据来可视化、分析和处理多种设备生成的图像,这些数据类型包括单精度和双精度浮点和有符号或无符号的8、16、和32位整数。

1.1查询图像文件的信息

函数:imfinfo
语法格式:info=imfinfo(filename,fat)
注解:filename-----文件名
   format-----文件格式
举例:查看canoe.tif的基本信息

1.2图像文件的读写

1.2.1图像文件的导入

方式一:使用文件导入向导
具体操作:在工具栏点击“导入数据”按钮,在弹出的弹框中选择需要导入文件,再点击“打开”按钮,然后选择导入的数据,最后点击“导入所选内容”即可。
方式二:使用命令导入
Matlab提供了imread函数来读取图像文件到工作区中。利用imread函数,用户可以导入多种文件格式的图像数据,例如TIFF、HDF、BMP、JPEG、GIF、PCX、XWD、Cursor、Icon和PNG等格式。

>> RGB = imread('football.jpg');
>> whos
  Name        Size                Bytes  Class    Attributes

  RGB       256x320x3            245760  uint8 

1.2.1图像文件的写入

函数:imwrite
目的:将数据输出为多种标准的图像文件
例子:将上例子导入的数据以图像格式文件输出

>> imwrite(RGB,'football.jpg')

此时我们的工作区就会出现football.jpg文件

1.3图像文件的显示

函数:imshow
格式:

imshow(I)
imshow(RGB)
imshow(X,map)

举例:使用imhow函数显示索引图像

>> [X,map]=imread('trees.tif');
>> imshow(X,map)

在这里插入图片描述
matlab图像格式转换函数

函数功能
I=ind2gray(X,map)将索引图像转换为灰度图像
I=rgb2gray(RGB) newmap=rgb2gray(map)将RGB图像或者颜色转换为灰度图像
RGB=ind2rgb(X,map)将索引图像转换为RGB图像

图像转换

>> [X,map] = imread('trees.tif');
>> gmap = rgb2gray(map);
>> figure,imshow(X,map);
>> figure,imshow(X,gmap);

二、图像的几何运算

几何变换:可以认为是各像素在图像内移动的过程。几何变换通常包括图像的变换、图像的镜像变换、图像的缩放、图像的剪切等。

2.1图像的平移

函数:translate
语法格式:SE2=translate(SE,V) SE为模板,V是向量,原来指定平移的方向

2.2图像的镜像变换

类型一:水平镜像----将图像左半部分和右半部分以图像垂直中轴线为中心
函数:fliplr
类型二:垂直镜像----将上半部分和下半部分以图像水平中轴线为中心
函数:flipud

2.3图像的缩放

函数:imresize
语法格式:
B = imresize(A,scale) 返回图像 B,它是将 A 的长宽大小缩放图像 scale 倍之后的图像。输入图像 A 可以是灰度图像、RGB 图像、二值图像或分类图像。如果 A 有两个以上维度,则 imresize 只调整前两个维度的大小。如果 scale 介于 0 和 1 之间,则 B 小于 A。如果 scale 大于 1,则 B 大于 A。
B = imresize(A,[numrows numcols])
返回图像 B,其行数和列数由二元素向量 [numrows numcols] 指定。

例:使用默认插值方法将图像的长宽缩小二分之一

>> I = imread('ngc6543a.jpg');
>> J = imresize(I, 0.5);
>> figure, imshow(I), figure, imshow(J)

2.4图像的旋转

函数:imrotate
语法格式:

J = imrotate(I,angle)
%将图像 I 围绕其中心点逆时针方向旋转 angle 度。要顺时针旋转图像,请为 angle 指定负值。
J = imrotate(I,angle,method)
%使用 method 指定的插值方法旋转图像 I。
J = imrotate(I,angle,method,bbox)
%还使用 bbox 参数来定义输出图像的大小。您可以将输出裁剪到与输入图像相同的大小,或返回整个旋转后的图像。

例:使用imrotate旋转图像

>> I = imread('cameraman.tif');
>> B = imrotate(I,60,'bilinear','crop');
>> subplot(121),imshow(I),title('原图');
>> subplot(122),imshow(B),title('旋转图像');

2.5图像的剪切

函数:imcrop
语法格式:

Icropped = imcrop(I)
%在图窗窗口中显示灰度图像、真彩色图像或二值图像 I,并创建交互式裁剪图像工具以裁剪图像。
Xcropped = imcrop(X,cmap) 
%使用颜色图 cmap 在图窗中显示索引图像 X,并创建交互式裁剪图像工具以裁剪图像。imcrop 返回裁剪的索引图像 Xcropped,该图像也具有颜色图 cmap。
Icropped = imcrop(I,rect)
%根据在裁剪矩形 rect 中指定的位置和维度裁剪图像 I。裁剪的图像包括输入图像中该矩形完全或部分包围的所有像素。

例如:通过指定裁剪矩形裁剪图像

>> I = imread('circuit.tif');
>> I2 = imcrop(I,[75 68 130 112]);
>> subplot(1,2,1)
imshow(I)
title('Original Image')
subplot(1,2,2)
imshow(I2)
title('Cropped Image')
解决??? XML-file failed validation against schema located in: D:\Program Files\MATLAB\R2007b\sys\namespace\info\v1\info.xsd XML-file name: d:\program files\matlab\r2007b\toolbox\hosa_d\hosa\info.xml To retest the XML-file against the schema, call the following java method: com.mathworks.xml.XMLValidator.validate(... 'd:\program files\matlab\r2007b\toolbox\hosa_d\hosa\info.xml',... 'D:\Program Files\MATLAB\R2007b\sys\namespace\info\v1\info.xsd', true) Errors: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'area'. One of '{MathWorksID, type}' is expected. 运行hosaver: Warning: Could not find an exact (case-sensitive) match for 'hosaver'. D:\Program Files\MATLAB\R2007b\toolbox\hosa_d\hosa\HOSAVER.M is a case-insensitive match and will be used instead. You can improve the performance of your code by using exact name matches and we therefore recommend that you update your usage accordingly. Alternatively, you can disable this warning using warning('off','MATLAB:dispatcher:InexactMatch'). Higher-Order Spectral Analysis Toolbox. Version 2.0.3 (R12 compliant) 27 Dec 2000 安装原版工具箱之所以出现问题是因为没有将文件名全部改成小写,无法运行hosademo是因为缺少choices.m文件,参考http://cn.mathworks.com/matlabcentral/fileexchange/3013-hosa-higher-order-spectral-analysis-toolbox。本资源是整理后的工具箱,直接安装就可使用,运行hosaver显示成功安装信息,运行hosademo查看示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值