poster
2019-12-10, 20:48
我正在使用Matlab进行视频稳定化(使抖动的视频不抖动)。步骤之一是在给定不稳定的摄像机路径的情况下找到平滑的摄像机路径。不稳定的相机路径是使视频抖动或抖动的路径。我有使用3D数据的相机位置指定的相机路径。相机路径-(cx,cy,cz);
当我在Matlab中绘图时,我可以从视觉上看到相机运动的晃动。所以现在我需要在(cx,cy,cz)指定的摄像机路径上进行最小二乘拟合;
我遇到了适合于二维数据的polyfit()。但是我需要的是一个3D平滑曲线,适合摇晃的曲线。提前致谢。
回答:
使用最小二乘法拟合的方法:
t = (1:0.1:5)'; % model px = [ 5 2 1 ]; x = polyval(px,t); py = [ -2 1 1 ]; y = polyval(py,t); pz = [ 1 20 1 ]; z = polyval(pz,t); % plot model figure plot3(x,y,z) hold all % simulate measurement xMeasured = x+2*(rand(length(x),1)-0.5); yMeasured = y+2*(rand(length(y),1)-0.5); zMeasured = z+2*(rand(length(z),1)-0.5); % plot simulated measurements plot3(xMeasured, yMeasured, zMeasured,'or') hold off grid on % least squares fit A = [t.^2, t, t./t]; pxEstimated = A\xMeasured; pyEstimated = A\yMeasured; pzEstimated = A\zMeasured;
更多&回答... (https://stackoverflow.com/questions/4131141)
当我在Matlab中绘图时,我可以从视觉上看到相机运动的晃动。所以现在我需要在(cx,cy,cz)指定的摄像机路径上进行最小二乘拟合;
我遇到了适合于二维数据的polyfit()。但是我需要的是一个3D平滑曲线,适合摇晃的曲线。提前致谢。
回答:
使用最小二乘法拟合的方法:
t = (1:0.1:5)'; % model px = [ 5 2 1 ]; x = polyval(px,t); py = [ -2 1 1 ]; y = polyval(py,t); pz = [ 1 20 1 ]; z = polyval(pz,t); % plot model figure plot3(x,y,z) hold all % simulate measurement xMeasured = x+2*(rand(length(x),1)-0.5); yMeasured = y+2*(rand(length(y),1)-0.5); zMeasured = z+2*(rand(length(z),1)-0.5); % plot simulated measurements plot3(xMeasured, yMeasured, zMeasured,'or') hold off grid on % least squares fit A = [t.^2, t, t./t]; pxEstimated = A\xMeasured; pyEstimated = A\yMeasured; pzEstimated = A\zMeasured;
更多&回答... (https://stackoverflow.com/questions/4131141)