1、缩放
该函数用于对图像做缩放处理。在matlab的命令窗口中输入doc imresize或者help imresize即可获得该函数的帮助信息
调用格式
B = imresize(A, m)
返回的图像B的长宽是图像A的长宽的m倍,即缩放图像。 m大于1,则放大图像; m小于1,缩小图像。
B = imresize(A, [numrows numcols])
numrows和numcols分别指定目标图像的高度和宽度。显而易见,由于这种格式允许图像缩放后长宽比例和源图像长宽比例不相同,因此所产生的图像有可能发生畸变。
[Y newmap] = imresize(X, map, scale)
[...] = imresize(..., method)
method参数用于指定在改变图像尺寸时所使用的算法,可以为以下几种:
'nearest': 这个参数也是默认的,即改变图像尺寸时采用最近邻插值算法;
'bilinear':采用双线性插值算法;
'bicubic': 采用双三次插值算法,在R2013a版本里,默认为这种算法,所以不同版本可能有不同的默认参数,使用之前建议使用命令help imresize获得帮助信息,以帮助信息为准;
2、旋转
函数功能:对图像进行旋转操作。
调用格式:
B = imrotate(A,angle)
将图像A(图像的数据矩阵)绕图像的中心点旋转angle度,正数表示逆时针旋转,负数表示顺时针旋转。返回旋转后的图像矩阵。以这种格式调用该函数,该函数默认采用最近邻线性插值(Nearest-neighbor interpolation)。旋转后的图像超出的部分填充0(黑色)。
B = imrotate(A,angle,method)
使用method参数可以改变插值算法,method参数可以为下面这三个值:
{'nearest'}:最邻近线性插值(Nearest-neighborinterpolation)
'bilinear':双线性插值(Bilinearinterpolation)
'bicubic':双三次插值(或叫做双立方插值)(Bicubicinterpolation)
B = imrotate(A,angle,method,bbox)
bbox参数用于指定输出图像属性:
'crop':通过对旋转后的图像B进行裁剪,保持旋转后输出图像B的尺寸和输入图像A的尺寸一样。
{'loose'}:使输出图像足够大,以保证源图像旋转后超出图像尺寸范围的像素值没有丢失。一般上这种格式产生的图像的尺寸都要大于源图像的尺寸。
3、Reshape函数
函数功能:重新调整矩阵的行数、列数、维数。
调用格式:
B = reshape(A,m,n)
返回一个m*n的矩阵B, B中元素是按列从A中得到的。如果A中元素个数没有m*n个,则会引发错误。
B = reshape(A,m,n,p,...)和B =reshape(A,[m n p ...])
返回一个和A具有相同元素的n维数组。但B的尺寸是m*n*p*...,m*n*p*...必须和prod(size(A))相等。即A和B元素个数相等。
B = reshape(A,...,[ ],...)
计算由占位符[ ]所表示的尺寸的长度,这样维度的乘积等价于prod(size(A))。而prod(size(A))的值必须能被的指定维数的乘积所整除。在这里面占位符[ ] 只能使用一次。
B = reshape(A,siz)
返回一个和A元素相同的n维数组,但是由向量siz来决定重构数组维数的大小,prod(siz)的数量值必须和prod(size(A))的保持一致。4、平移
matlab实例:
clc;clear;close all;
img1=imread('1.jpg');
img1=rgb2gray(img1);
figure,imshow(img1);
imwrite(img1,'a1.jpg');
%%%%%%平移
se=translate(strel(1),[20 20]);
img2=imdilate(img1,se);
figure,imshow(img2);
imwrite(img2,'a2.jpg');
%%%%%%旋转
img3=imrotate(img1,90);
figure,imshow(img3);
imwrite(img3,'a3.jpg');
% %%%%%缩放
img4=imresize(img1,2);
figure,imshow(img4);
imwrite(img4,'a4.jpg');