alb*_*s_c 5 matlab hough-transform ransac
我有一组点,我需要使用它们的附近分组到相应的正弦线.我尝试使用标准Hough变换确定线条,但这并没有解决问题(只检测到几行).
我想测试RANSAC是否能更好地检测各种正弦曲线.你有类似算法的例子吗?
我知道RANSAC不是找到多行的最佳工具,所以我要做的是a)找到适合大多数点的函数; b)迭代搜索,仅考虑其余的搜索.
小智 0
直到达到内点百分比阈值或测试了 N 个样本组合。
输入:
可能的改进
资料来源:Fischler 和 Bolles - 随机样本共识:图像分析和自动制图应用的模型拟合范式
您的模型是一个正弦,定义为 f(x) = 振幅 * sin(周期 * x) + 偏差。拟合这个模型并不容易,因为它依赖于三个参数。我认为长期运行会有风险,并且有可能过度拟合。一种可能的解决方案可能是在不同时期多次运行算法并保持偏差和幅度固定。
iterationThreshold = 10000;
iterationCount = 0
errorthreshold = 0.05;
while(numel(inliers(:,1)) > inlierThreshold)
samples = extractMinimumSamples(points);
[sineX, sineY] = fitSine(samples);
inliers = determineInliers(points, SineX, SineY)
iterationCount = iterationCount + 1;
if(iterationCount => iterationThreshold)
break;
end
end
Run Code Online (Sandbox Code Playgroud)
另请参阅对此代码的修改可能的改进