imtransform——对图像进行二维空间变换
【功能】对图像进行二维空间变换。
【语法介绍】
- B=imtransform(A,TFORM) 根据二维空间变换结构 TFORM 对图像 A 进行二维空间变换。TFORM 为变换结构,由函数 maketform 或 cp2tform 生成(函数 maketform 和 cp2tform 用于生成空间变换结构)。如果 A 的维数大于 2 (如真彩色图像),则将空间变换结构应用到 A 中所有的二维矩阵(A(:,:,i))中。
- B=imtransform(A,TFORM,INTERP) 字符串参量 INTERP 指定空间变换插值方法参数,见下表。
参数 | 描述 |
---|---|
‘bicubic’ | 双立方插值 |
‘bilinear’ | 默认值,双线性插值 |
‘nearest’ | 最近邻差值 |
- [B,XDATA,YDATA]=imtransform(…) 返回输出图像 B 及输出空间XDATA-YDATA。输出参量 XDATA 和 YDATA 均为二元向量。XDATA 中的元素对应 x 轴,YDATA 中的元素对应 y 轴。
- [B,XDATA,YDATA]=imtransform(…,param1,val1,param2,val2,…) 设定空间变换参数 paramN 的值valN。其他结果同上。
【实例1】对一幅灰度图像进行水平剪变换。
I=imread('cameraman.tif'); %读取图像
tform=maketform('affine',[1 0 0;.5 1 0;0 0 1]); %创建二维仿射变换结构
J=imtransform(I,tform); %对图像进行水平剪变换
imshow(I) %显示原始灰度图像
figure;
imshow(J) %显示变换图像
【实例2】对图像进行透视变换。
I=imread('cameraman.tif'); %读取图像
udata=[0 1]; vdata=[0 1]; %定义输出空间
tform=maketform('projective',[0 0;1 0;1 1;0 1],...,
[-4 2;-8 -3;-3 -5;6 3]); %创建变换结构
%根据定义的结构进行变换
[B,xdata,ydata]=imtransform(I,tform,'bicubic',..., %定义插值方法
'udata',udata,..., %定义输出空间
'vdata',vdata,...,
'size',size(I),..., %定义输出图像大小
'fill',128); %定义数据外空间灰度
imshow(I,'XDATA',udata,'YDATA',vdata) %显示原始图像
axis on
figure;
imshow(B,'XDATA',xdata,'YDATA',ydata) %显示变换图像
axis on
版权说明
文章作者:早知晓
博文链接:Click here
希望大家都走在开满鲜花的路上,加油鸭~