91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 547KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-19
  • 語言: C/C++
  • 標簽: RANSAC??Ziv??

資源簡介

這個是很經典的RANSAC算法實現,里面改成了中文注釋

資源截圖

代碼片段和文件信息

#include?
#include?“LineParamEstimator.h“

LineParamEstimator::LineParamEstimator(double?delta)?:?m_deltaSquared(delta*delta)?{}
/*****************************************************************************/
?/*?
?*?Compute?the?line?parameters??[n_xn_ya_xa_y]?
?*?通過輸入的兩點來確定所在直線,采用法線向量的方式來表示,以兼容平行或垂直的情況?
?*?其中n_xn_y為歸一化后,與原點構成的法線向量,a_xa_y為直線上任意一點?
?*/??
/*****************************************************************************/?*/
void?LineParamEstimator::estimate(std::vector?&data?std::vector?¶meters)
{
parameters.clear();
if(data.size()<2)
return;
double?nx?=?data[1]->y?-?data[0]->y;
double?ny?=?data[0]->x?-?data[1]->x;//?原始直線的斜率為K,則法線的斜率為-1/k?
double?norm?=?sqrt(nx*nx?+?ny*ny);

parameters.push_back(nx/norm);
parameters.push_back(ny/norm);
parameters.push_back(data[0]->x);
parameters.push_back(data[0]->y);
}
/*****************************************************************************/
/*?
?*?Compute?the?line?parameters??[n_xn_ya_xa_y]?
?*?使用最小二乘法,從輸入點中擬合出確定直線模型的所需參量?
?*/??

void?LineParamEstimator::leastSquaresEstimate(std::vector?&data?
std::vector?¶meters)
{
double?meanX?meanY?nx?ny?norm;
double?covMat11?covMat12?covMat21?covMat22;?//?The?entries?of?the?symmetric?covarinace?matrix
int?i?dataSize?=?data.size();

parameters.clear();
if(data.size()<2)
return;

meanX?=?meanY?=?0.0;
covMat11?=?covMat12?=?covMat21?=?covMat22?=?0;
for(i=0;?i meanX?+=data[i]->x;
meanY?+=data[i]->y;

covMat11 +=data[i]->x?*?data[i]->x;
covMat12 +=data[i]->x?*?data[i]->y;
covMat22 +=data[i]->y?*?data[i]->y;
}

meanX/=dataSize;
meanY/=dataSize;

covMat11?-=?dataSize*meanX*meanX;
??covMat12?-=?dataSize*meanX*meanY;
covMat22?-=?dataSize*meanY*meanY;
covMat21?=?covMat12;

if(covMat11<1e-12)?{
nx?=?1.0;
??ny?=?0.0;
}
else?{ ????//lamda1?is?the?largest?eigen-value?of?the?covariance?matrix?
???????????//and?is?used?to?compute?the?eigne-vector?corresponding?to?the?smallest
???????????//eigenvalue?which?isn‘t?computed?explicitly.
double?lamda1?=?(covMat11?+?covMat22?+?sqrt((covMat11-covMat22)*(covMat11-covMat22)?+?4*covMat12*covMat12))?/?2.0;
nx?=?-covMat12;
ny?=?lamda1?-?covMat22;
norm?=?sqrt(nx*nx?+?ny*ny);
nx/=norm;
ny/=norm;
}
parameters.push_back(nx);
parameters.push_back(ny);
parameters.push_back(meanX);
parameters.push_back(meanY);
}
/*****************************************************************************/??
/*?
?*?Given?the?line?parameters??[n_xn_ya_xa_y]?check?if?
?*?[n_x?n_y]?dot?[data.x-a_x?data.y-a_y]??*?通過與已知法線的點乘結果,確定待測點與已知直線的匹配程度;結果越小則越符合,為?
?*?零則表明點在直線上?
?*/?
bool?LineParamEstimator::agree(std::vector?¶meters?Point2D?&data)
{
double?signedDistance?=?parameters[0]*(data.x-parameters[2])?+?parameters[1]*(data.y-parameters[3]);?
return?((signedDistance*signed

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-05-30?10:51??Ziv?Yaniv\
?????目錄???????????0??2014-05-29?15:17??Ziv?Yaniv\Debug\
?????文件???????11706??2014-05-29?15:17??Ziv?Yaniv\Debug\BuildLog.htm
?????文件????????2048??2014-05-29?15:16??Ziv?Yaniv\Debug\RANSAC.exe.embed.manifest
?????文件???????93184??2014-05-29?15:17??Ziv?Yaniv\Debug\vc90.idb
?????文件??????135168??2014-05-29?15:17??Ziv?Yaniv\Debug\vc90.pdb
?????文件????????5102??2014-05-30?10:22??Ziv?Yaniv\LineParamEstimator.cpp
?????文件????????2693??2004-05-12?16:15??Ziv?Yaniv\LineParamEstimator.h
?????文件????????1765??2004-05-12?16:17??Ziv?Yaniv\ParameterEsitmator.h
?????文件??????????22??2004-05-11?19:13??Ziv?Yaniv\Point2D.cpp
?????文件?????????442??2014-05-29?15:17??Ziv?Yaniv\Point2D.h
?????文件????????4725??2004-05-11?20:20??Ziv?Yaniv\RANSAC.dsp
?????文件?????????535??2004-05-11?19:34??Ziv?Yaniv\RANSAC.dsw
?????文件?????1854464??2014-05-30?14:32??Ziv?Yaniv\RANSAC.ncb
?????文件???????53760??2004-05-12?17:05??Ziv?Yaniv\RANSAC.opt
?????文件?????????246??2004-05-12?16:30??Ziv?Yaniv\RANSAC.plg
?????文件?????????877??2014-05-30?10:51??Ziv?Yaniv\RANSAC.sln
?????文件???????18944??2014-05-30?14:32??Ziv?Yaniv\RANSAC.suo
?????文件????????6242??2014-05-29?15:16??Ziv?Yaniv\RANSAC.vcproj
?????文件????????1409??2014-05-30?14:32??Ziv?Yaniv\RANSAC.vcproj.ZQL-PC.ZQL.user
?????文件???????13096??2004-05-12?16:18??Ziv?Yaniv\Ransac.h
?????文件????????3970??2014-05-30?10:51??Ziv?Yaniv\RansacExample.cpp
?????文件????????1819??2004-05-12?17:04??Ziv?Yaniv\Readme
?????文件?????????286??2004-05-12?15:31??Ziv?Yaniv\Unix_Makefile

評論

共有 條評論