函数imtransform使用反向映射,即按照顺序扫描每个输出像素,用 运算出输入图像上的对应位置,并将其插值到最近的输入像素之中,以决定输出像素的值。其语法为:
g = imtransform (f, tform, interp)
其中,interp是一个字符串,用来指明像素如何样获得输出像素,能够是:‘nearest’, ‘billnear’, ‘bicublc’ 或 ‘bicubic’。
(2)图像配准。工具箱支持以操纵点为基础的图像配准,操纵点也称为联接点,即在两幅图像中的位置已知或能够交互地选择的像素的一个子集。函数cp2tform支持的空间变换类型已列在下表中。
表格 错误!文档中没有指定样式的文字。-11 函数cp2tform和maketform支持的变换类型
变换类型 Affine (仿射) Box (盒) Composite (合成) Custom (自定义) 描述 函数 缩放、旋转、剪切和平移的组合。直线仍旧保持直线,maketform 平行线保持平移。 沿着每个方向独立地缩放和平移;仿射变换的子集。 顺序应用的空间变换集合。 用户自定义的空间变换;用户提供 和 函数。 cp2tform maketform maketform maketform cp2tform cp2tform maketform cp2tform Linear conformal 缩放(在各个方向上都相同)、旋转、和平移;仿射变(线性等角) 换的子集。 LWM 局部加权平均;局部变化的空间变换。 Piecewise linear 局部变化的空间变换。 (分段线性) Polynomial (多项式) Project (投影)
输入空间坐标是输出空间的多项式。 如仿射变换那样,直线保持为直线,但平行线收敛于消逝点。 3.2 实验内容
3.2.1 使用函数imnoise2(在M函数文件夹下)产生数据的六种直方图:高斯、平均、对数正态、瑞利、指数、厄兰(从左至右),如图所示。请写出实验代码。
>> r=imnoise2('gaussian',100000,1,0,1); >> p=hist(r,50); >> bar(p);
>> r2=imnoise2('uniform',100000,1); >> p=hist(r2,50); >> bar(p)
>> r2=imnoise2('lognormal',100000,1); >> p=hist(r2,50); >> bar(p)
>> r2=imnoise2('rayleigh',100000,1); >> p=hist(r2,50); >> bar(p)
>> r2=imnoise2('exponential',100000,1); >> p=hist(r2,50); >> bar(p)
>> r2=imnoise2('erlang',100000,1); >> p=hist(r2,50); >> bar(p)
3.2.2 使用函数imnoise3,产生频谱和空间正弦噪声模式,如图所示。
>> c=[0 64;0 128;32 32;64 0;128 0;-32 32]; >> [r,R,s] = imnoise3 (512,512,c); >> imshow(s, [])
>> figure,imshow(r, [])
>> c2=[0 32;0 64;16 16;32 0;64 0;-16 16]; >> [r2,R2,s2] =