關於我自己

我的相片
累計超過15年的工作經驗,包括10年的設備製造業經驗,超過6年的光電零組件製造業經驗;10年的海外工作經驗,其中至今有5年以上的派駐經驗。 1.專注AOI檢測於10年以上(從光機設計、圖像分析、設備挑選、處理速度) 2.機器學習推論-onnx整合傳統演算法從瑕疵抓取、分析、分類 3.遷移式機器學習模式(工業應用、醫療應用) 4.整合:Python推論引擎、C++運算能力、C#友善介面 彈性使用 5.擅長利用專家模型推進專案,並熟悉使用OpenVINO、TensorRT、ONNXRUNTIME框架進行有效的實作與測試。

2011年10月7日 星期五

[轉貼]最小二乘法直線擬合

http://blog.csdn.net/byxdaz/article/details/594414

class CFoldPoint
{
public:
  double x;double y;
}
typedef CTypedPtrList CFoldPointList;
typedef CDoubleArray CDoubleArray;
//最小二乘法直線擬合
BOOL CalculateLineKB(CFoldPointList *m_FoldList,double &k,double &b)
{
 //最小二乘法直線擬合
 //m_FoldList為關鍵點(x,y)的鏈表
 //擬合直線方程(Y=kX+b)

 if(m_FoldList==NULL)return FALSE;
 long lCount=m_FoldList->GetCount();
 if(lCount<2)return FALSE;
 CFoldPoint *pFold;
 double mX,mY,mXX,mXY,n;
 mX=mY=mXX=mXY=0;
 n=lCount;
 POSITION pos=m_FoldList->GetHeadPosition();
 while(pos != NULL)
 {
  pFold=m_FoldList->GetNext(pos);
  mX+=pFold->X;
  mY+=pFold->Y;
  mXX+=pFold->X*pFold->X;
  mXY+=pFold->X*pFold->Y;
 }
 if(mX*mX-mXX*n==0)return FALSE;
 k=(mY*mX-mXY*n)/(mX*mX-mXX*n);
 b=(mY-mX*k)/n;
 return TRUE;
}

沒有留言: