空间几何变换
将(w,z)坐标系上的图像变换为(x,y)坐标系上的图像,可以表示为: (x,y) = T{(w,z)
比如: (x,y) = T{(w,z)} = (w/2, z/2)
仿射变换
仿射变换是一种常用矩阵变换,它可以表示成矩阵的形式:
在matlab里面实现
wz = [3 4 1];
T = [2 0 0; 0 3 0; 0 0 1];
xy = wz * T;
wz = xy * inv(T);
为了避免归一化参数,我们可以借助maketform函数:
T = [2 0 0; 0 3 0; 0 0 1];
tform = maketform('affine', T);
wz = [1 2; 3 4];
xy = tformfwd(wz, tform);
wz = tforminv(xy, tform);
对图像应用空间变换
有两种方法:正向映射和反向映射
反向映射的过程是:对每一个输出像素,计算它在输入图像上的位置,根据输入图像上该位置附近的像素值决定输出像素的值。
在matlab中,简单的变换可以直接用单个函数实现。图像缩放使用:
g = imresize(f, scale);
g = imresize(f, [ROW COL]);
图像旋转使用:
g = imrotate(f, angle);
图像剪切使用:
g = imcrop(f, [X, Y, WIDTH, HEIGHT]);
在matlab中使用imtransform实现图像的空间变换。语法是
g = imtransform(f, tform, interp);
其中,interp可以是'nearest','bilinear'或者'bicubic'。
比如:
f = chekerboard(50);
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);
g = imtransform(f, tform);
分享到:
相关推荐
找到图像的tform,然后imtransform
首先找到图像的tform,然后找到特定角度的旋转
找到 tform,然后剪切或倾斜图像
- 变换图像:根据用户指定的变换参数计算变换矩阵,然后将变换应用于加载的图像。 - 保存图像:保存转换后的图像。 - 退出:退出程序。 转换参数由用户通过编辑旋转、缩放(x 和 y)和剪切(x 和 y)的值。 这不...
此函数考虑了 imtransform 用于转换图像的约定,并将转换应用于点集和图像。... 有时,人们希望以与图像变换相同的方式变换与图像相关的点集,以便重叠原始图像上的点或变换图像上的变换点产生相同的视觉内容。
matlab开发-mimtransform。更改光栅图像的地图投影。
此函数获取图像或矩阵并将其旋转 theta(弧度、刚性运动) 图像也可以通过可选的缩放因子放大或缩小 img:输入图像(或 2D 矩阵) dtheta:弧度的...例子: im = imread('cameraman.tif') imshow(imTransform(im,pi/6))
当CP2TFORM用于分段线性图像变换模式时,它使用三角测量来计算局部图像变换。 有时,当与输入点一起使用时,基点的良好三角剖分会产生折叠三角形。 函数 CP2TFORM 尝试删除导致折叠的控制点,但经常失败并显示错误:...
在对数极坐标网格上采样的图像具有有趣且有用的特性。 旋转和缩放是微不足道的操作,这可以产生用于直线检测和光流估计的高效算法。... 工具箱函数 imtransform 做主要工作; 这些功能是它的前端。
这实质上增加了对地图投影的支持,以从图像处理工具箱中运行 imtransform。 该演示演示了 geotiff 的重新投影,从地理纬度和经度到 UTM 坐标。 如果您只想在不同的地图投影中将图像显示为图形,请参阅映射工具箱中...
用户 Phil Lewis 通过使用 'imtransform' 而不是翻译合理地修改了我的第一个脚本。 仍然存在重叠切片不正确转换的问题。 我修改了它以使用“ SliceLocation”而不是“ InstanceNumber”来计算偏移量。 在命令窗口中...
在MATLAB中,我们经常只以函数形式给出线性运算f(),但需要矩阵形式来做线性代数运算:转置、伪求逆等……此类运算的例子有INTERPN、RADON、IMTRANSFORM等... 此提交中的文件 FUNC2MAT 计算矩阵 A 给定一个句柄,...