MatLab与倍频程函数cp2tform的区别
我在MatLab中有一个函数。我假设一个倍频程的函数应该给出与MatLab中相同的输出 问题是,在某些情况下,输出是不同的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
示例:
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。但是,如果我可以添加如何使用投影变换来纠正此问题,那么将非反射相似性
替换为投影相似性
,您就可以开始了。