昂,一直在学习,只做个安静漂亮的小姐姐不行吗?
Matlab自带函数
1.旋转图片功能
imrotate函数
B = imrotate(A,angle)
将图像A(图像的数据矩阵)绕图像的中心点旋转angle度, 正数表示逆时针旋转, 负数表示顺时针旋转。返回旋转后的图像矩阵。
B = imrotate(A,angle,method)
使用method参数可以改变插值算法,method参数可以为下面这三个值:
‘nearest’:最邻近线性插值(Nearest-neighbor interpolation)
‘bilinear’: 双线性插值(Bilinear interpolation)
‘bicubic’: 双三次插值(或叫做双立方插值)(Bicubic interpolation)
B = imrotate(A,angle,method,bbox)
bbox参数用于指定输出图像属性:
‘crop’: 通过对旋转后的图像B进行裁剪, 保持旋转后输出图像B的尺寸和输入图像A的尺寸一样。
‘loose’: 使输出图像足够大, 以保证源图像旋转后超出图像尺寸范围的像素值没有丢失。 一般这种格式产生的图像的尺寸都要大于源图像的尺寸。
2.B = imtransform(A,tform) 根据 tform 定义的二维空间变换来变换图像 A,并返回变换后的图像 B。
如果 A 是彩色图像,则 imtransform 会对每个颜色通道应用相同的二维变换。类似地,如果 A 是三维体或具有三个或更多维度的图像序列,则 imtransform 将相同的二维变换应用于沿更高维度的所有二维平面。对于任意维度的数组变换,请使用 tformarray。
网上的例子都是逆时针转奥,咱们顺时针转~
举例:
tform=maketform('affine',[0 -1 0; -1 0 0; 0 0 1]);
A=imtransform(I,tform,'nearest');
小功能之切割图片
rectangle('Position',[820,600,1240,700]) %先绘制矩形,确定 要切割出来的区域
C=imcrop(B,[820,600,1240,700]);
有什么需要的可以留言,抽空探究一下~
matlab数据结构转型
把N×M维向量转变成一列
b=a(:);
把N×M维向量转变成一行
b=reshape(a,1,length(a(:)));