计算机视觉 openCV2 几种fitting line 方法

1. 最小二乘法(least square):

x = []
y = []
for point in data_points:
    x.append(point[0])
    y.append(point[1])
avg_x = (sum(x)) / len(x)
avg_y = (sum(y)) / len(y)
x_sub = list(map((lambda x: x - avg_x), x))
y_sub = list(map((lambda y: y - avg_y), y))
x_sub_pow2 = list(map((lambda x: x ** 2), x_sub))

x_y = map((lambda x, y: x * y), x_sub, y_sub)
a = (sum(x_y)) / sum(x_sub_pow2)
b = avg_y - a * avg_x

2. 鲁棒估计法(robust estimator):

采用fitline函数。后续实现相关功能函数

3. 高斯估计法:

对两个shot图片的数据点采用高斯概率分布,求出u and variance 对一定threshold(70%概率)以外的点进行还原图像。

三类方法都是先拟合,再提取threhold意外的点,然后还原图像,有必要进行erode和dilute,最后获得图片变动物体。


你可能感兴趣的:(计算机视觉 openCV2 几种fitting line 方法)