在Matlab中实现透视变换的方法
2017-03-26 16:29
225 查看
透视变换在两幅图像中进行对应非常有用,看下面的两幅图
第一幅图是源图像,图中有五个点,分别是四个顶点和中间的一个点(对应目标图中的中心点)
第二幅图是目标图,包括与源图像中的五个点对应的五个点
下面就要用Matlab根据四个顶点求透视变换矩阵,然后将源图像中中间的那个点对应到目标图像中去。
源图像中的点的坐标矩阵为:
B =
1 1
1 480
640 97
640 384
目标图像中对应的顶点坐标为:
A =
1 1
1 480
640 1
640 480
用以下方法求得变换矩阵:
TForm = cp2tform(B,A,'projective')
函数返回的TForm是一个结构类型,说明如下:
ndims_in: 2
ndims_out: 2
forward_fcn: @fwd_projective
inverse_fcn: @inv_projective
tdata: [1x1 struct]
其中:
ndims_in 和 ndims_out是输入输出数据的维数,因为是平面中坐标的变换,所以都是2位的坐标;
forward_fcn 和 inverse_fcn 分别是正变换和反变换函数。
求得TForm之后,用如下语句进行变换:
round(tformfwd(TForm,[400 240]))
其中[400 240]是在源图像中中间那个点的坐标,tformfwd函数利用刚才的 TForm 进行变换,round再对求得的结果取整,上述语句的输出结果为:
ans =
320 240
对应到目标图像中正好是图像的中点。
这里的源图像是对目标图像应用透视变换得来的,所以我才知道那个点对应过去是中点,用上述方法可以求得平面内任意一点的对应点坐标。
2011-06-11 16:18:38
第一幅图是源图像,图中有五个点,分别是四个顶点和中间的一个点(对应目标图中的中心点)
第二幅图是目标图,包括与源图像中的五个点对应的五个点
下面就要用Matlab根据四个顶点求透视变换矩阵,然后将源图像中中间的那个点对应到目标图像中去。
源图像中的点的坐标矩阵为:
B =
1 1
1 480
640 97
640 384
目标图像中对应的顶点坐标为:
A =
1 1
1 480
640 1
640 480
用以下方法求得变换矩阵:
TForm = cp2tform(B,A,'projective')
函数返回的TForm是一个结构类型,说明如下:
ndims_in: 2
ndims_out: 2
forward_fcn: @fwd_projective
inverse_fcn: @inv_projective
tdata: [1x1 struct]
其中:
ndims_in 和 ndims_out是输入输出数据的维数,因为是平面中坐标的变换,所以都是2位的坐标;
forward_fcn 和 inverse_fcn 分别是正变换和反变换函数。
求得TForm之后,用如下语句进行变换:
round(tformfwd(TForm,[400 240]))
其中[400 240]是在源图像中中间那个点的坐标,tformfwd函数利用刚才的 TForm 进行变换,round再对求得的结果取整,上述语句的输出结果为:
ans =
320 240
对应到目标图像中正好是图像的中点。
这里的源图像是对目标图像应用透视变换得来的,所以我才知道那个点对应过去是中点,用上述方法可以求得平面内任意一点的对应点坐标。
2011-06-11 16:18:38
相关文章推荐
- 在Matlab中实现透视变换的方法
- 在Matlab中实现透视变换的方法
- 在OpenCV中实现透视变换的方法
- 最优化方法的Matlab实现
- 计算方法单点截弦matlab实现
- 分水岭算法 matlab的三种实现方法 .
- (实验二) --- 图像旋转变换---matlab实现
- C语言实现MATLAB 6.5中M文件的方法
- 大津(Ostu)阈值分割方法在matlab中的实现
- 不用递归的方法计算米粒的个数和每个米粒的面积,matlab实现
- 计算方法双点截弦法matlab实现
- 2.0Tip/Trick之MessageBox, Popup, 循环的几种实现方法, 动态变换主题, 本地化(多语言), 响应鼠标双击事件
- 稳扎稳打Silverlight(32) - 2.0Tip/Trick之MessageBox, Popup, 循环的几种实现方法, 动态变换主题, 本地化(多语言), 响应鼠标双击事件
- 用牛顿方法解一元非线性方程的根(Matlab实现)
- 计算方法中方程的近似解法中二分法matlab实现
- 稳扎稳打Silverlight(32) - 2.0Tip/Trick之MessageBox, Popup, 循环的几种实现方法, 动态变换主题
- FFT变换的MATLAB实现
- (实验一) --- 彩色图像变换成灰度图像---matlab实现
- Gram-Schmidt正交化及其修正方法的matlab实现