f=checkerboard(50);
subplot(3,2,1),imshow(f),title('原始测试板')
s=0.8;
theta=pi/6;
T=[s*cos(theta) s*sin(theta) 0
-s*sin(theta) s*cos(theta) 0
0 0 1];%设置参数
tform=maketform('affine',T);%用maketform来创建tform结构,变量类型为affine,参数为T
g1=imtransform(f,tform);%使用imtransform产生空间变换,类型为默认的双线性
subplot(3,2,2),imshow(g1),title('双线性变换测试板')
g2=imtransform(f,tform,'nearest');%使用imtransform产生空间变换,类型为最近邻内插
subplot(3,2,3),imshow(g2),title('最近邻内插法测试板')
g3=imtransform(f,tform,'FillValue',0.5);%参数FillValue用于输入图像区域之外的像素颜色,这里中等的灰度取代了黑色
subplot(3,2,4),imshow(g3),title('指定填充后测试板')
T2=[1 0 0;0 1 0;50 50 1];
tform2=maketform('affine',T2);%利用参数T2完成一个纯平移,解决利用imtransform平移图像时引发的一些混乱
g4=imtransform(f,tform2,'XData',[1 400],'YData',[1 400],'FillValue',0.5);
%XData指定了输出图像的最左列和最右列的位置,YData指定了输出图像的最顶部和最底部的位置
subplot(3,2,5),imshow(g4),title('控制输出法测试板')
图像的空间变换
最新推荐文章于 2022-05-30 20:58:46 发布