MatLab与倍频程函数cp2tform的区别

MatLab与倍频程函数cp2tform的区别,matlab,octave,transformation,Matlab,Octave,Transformation,我在MatLab中有一个函数。我假设一个倍频程的函数应该给出与MatLab中相同的输出 问题是,在某些情况下,输出是不同的 示例: A = [1,5; 8,7; 10,15]; B = [0,7; 0,4; 0,5]; cp2tform(A,B,'nonreflective similarity') A = [1,5; 8,7; 10,15]; B = [0,7; 0,4; 0,5]; cp2tform(A,B,"nonreflective similarity") MatLab代码: A

我在MatLab中有一个函数。我假设一个倍频程的函数应该给出与MatLab中相同的输出

问题是,在某些情况下,输出是不同的


示例:

A = [1,5; 8,7; 10,15];
B = [0,7; 0,4; 0,5];
cp2tform(A,B,'nonreflective similarity')
A = [1,5; 8,7; 10,15];
B = [0,7; 0,4; 0,5];
cp2tform(A,B,"nonreflective similarity")
MatLab代码:

A = [1,5; 8,7; 10,15];
B = [0,7; 0,4; 0,5];
cp2tform(A,B,'nonreflective similarity')
A = [1,5; 8,7; 10,15];
B = [0,7; 0,4; 0,5];
cp2tform(A,B,"nonreflective similarity")
输出:

  -0.148848198464265  -0.305965741287655                   0
   0.305965741287655  -0.148848198464265                   0
  -1.810986414648551   8.610750147666863   1.000000000000000
-0.05960  -0.12252   0.00000
 0.12252  -0.05960   0.00000
-0.72517   6.64570   1.00000
倍频程代码:

A = [1,5; 8,7; 10,15];
B = [0,7; 0,4; 0,5];
cp2tform(A,B,'nonreflective similarity')
A = [1,5; 8,7; 10,15];
B = [0,7; 0,4; 0,5];
cp2tform(A,B,"nonreflective similarity")
输出:

  -0.148848198464265  -0.305965741287655                   0
   0.305965741287655  -0.148848198464265                   0
  -1.810986414648551   8.610750147666863   1.000000000000000
-0.05960  -0.12252   0.00000
 0.12252  -0.05960   0.00000
-0.72517   6.64570   1.00000

我的问题


我做错了什么?

这是因为你不能用
“非反射相似性”
描述点之间的转换

正确的答案是:MATLAB和OCTAVE都是错误的

“非反射相似性”
,来自MATLAB:

当输入图像中的形状不变时,使用此转换, 但是图像被一些翻译组合扭曲了, 旋转和缩放。直线保持直线和平行 两条线仍然平行

但如果你看看你的观点:


无法通过旋转、平移和缩放将三角形转换为直线。因此,计算失败。

这是因为您无法使用
“非反射相似性”
描述点之间的转换

正确的答案是:MATLAB和OCTAVE都是错误的

“非反射相似性”
,来自MATLAB:

当输入图像中的形状不变时,使用此转换, 但是图像被一些翻译组合扭曲了, 旋转和缩放。直线保持直线和平行 两条线仍然平行

但如果你看看你的观点:


无法通过旋转、平移和缩放将三角形转换为直线。因此,计算失败。

我的猜测:使用另一个函数?您放在那里的MATLAB代码使用的是
fitgeotrans
而不是
cp2tform
…对不起,我的错误:)我猜:使用另一个函数?你放在那里的MATLAB代码使用了
fitgeotrans
而不是
cp2tform
…对不起,我的错误:)我喜欢你画徒手红色箭头和圆圈的部分。徒手加1。但是,如果我可以添加如何使用投影变换来纠正此问题,那么将
非反射相似性
替换为
投影相似性
,您就可以开始了。我喜欢您绘制徒手红色箭头和圆圈的部分。徒手加1。但是,如果我可以添加如何使用投影变换来纠正此问题,那么将
非反射相似性
替换为
投影相似性
,您就可以开始了。