文章目录
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')