天天看點

ransac算法_RANSAC直線拟合與資料處理(四十八)

ransac算法_RANSAC直線拟合與資料處理(四十八)

1、C++RANSAC直線拟合

ransac算法_RANSAC直線拟合與資料處理(四十八)

2、求一組數中離某個數最近數的位置

#include #include #include #include #include #include #include using namespace cv;using namespace std;int  closest(float arr[], float num, int pos_num){  int ret_num = 0;  int ret = arr[0];  float distance = abs(ret - num);  for (int i = 1; i < 8; i++)  {    float newDistance = abs(arr[i] - num);    if (newDistance < distance)    {      distance = newDistance;      ret = arr[i];      ret_num = i;    }  }  return ret_num;}int main(){   float arr1[9] = { 884.330566, 884.330566, 884.311096, 884.186401, 885.186401, 885.147461, 885.108582, 885.175293, 885.089172};  int length = sizeof(arr1) / sizeof(arr1[0]);  cout << "length" << length << endl;  float findcnumber = 884.867981;  int ret_num = closest(arr1, findcnumber,1);    cout << "ret_num" << ret_num << endl;  cout<<"error="<-1]-findcnumber<<  system("pause");  waitKey(0);  return 0;}
           
ransac算法_RANSAC直線拟合與資料處理(四十八)

3、求一組數的二階差分值的極大值和極小值

vector CenterPoint;  vector<int> secondDerivativePeak;  for (int i = CenterPoint.size() - 6; i>CenterPoint.size() / 4; i--)  {    if (i >= CenterPoint.size() || (i 0)) {     int temp = 0;    for (int j = 5; j >= -5; j--)    {      temp = temp + CenterPoint[i + j].y;    }    temp = temp - 11 * CenterPoint[i].y;    secondDerivativePeak.push_back(temp);  }  Point2f peakPoint, troughPoint;  int peakIndex = 0;  int troughIndex = 0;  for (int i = 0; i  {    if (i >= CenterPoint.size() || (i 0)) {     if (secondDerivativePeak[i]>secondDerivativePeak[peakIndex])    {      peakIndex = i;    }    if (secondDerivativePeak[i]    {      troughIndex = i;    }  }  cout << peakIndex << endl;  cout << troughIndex << endl;
           

機器人實時糾偏系統(一)機器人實時糾偏(二)OpenCV+VS開發環境配置(三)基于結構光視覺的焊接機器人糾偏(四)基于結構光視覺的機器人焊接(五)基于結構光視覺的機器人焊接(六)機器人初始點導引(七)MATLAB錄影機工具箱标定相機參數(八)機器人的手眼标定(九)機器人坐标擷取(十)機器人調試(十一)TCP/IP用戶端API程式設計(十二)結構光傳感器上位機界面多線程程式設計(十三)TCP&UDP(十四)C/C++ Programing(十五)機器人掃描與跟蹤調試(十六)結構光傳感器庫函數(十七)結構光傳感器程式設計(十八)C/C++ Programing(十九)C/C++ Programing(二十)結構光傳感器程式設計(二十一)DX200操作要領(二十二)DX200操作要領(二十三)DX200獨立協調—工裝軸協調(二十四)DX200獨立協調—無夾具協調(二十五)圖像處理調試(二十六)STM32MODBUS_CRC程式設計(二十七)

在C++中調用Matlab函數(二十八)

機器人手眼标定MATLAB及C++實作

機器人位姿運算及Eigen的使用(三十)

OpenCV與Eigen矩陣運算(三十一)

VS中資料讀寫及OpenCV拟合(三十二)

VS2013配置OpenGL庫(三十三)

曲線拟合/插值C++MATLAB實作(三十四)

曲線拟合繪制濾波及機器人平移(三十五)

DX200操作要領—示教1(三十六)

直接打開與平移變換(三十七)PAM與鏡像平移變換(三十八)

修改與編輯程式(三十九)

YRC1000 宏程式指令(四十)

程式編輯與試運作(四十一)

程式編輯與再現(四十二)

再現(四十三)

程式管理(四十四)

便捷功能(四十五)

便捷功能(四十六)

OpenCV/MATLAB橢圓拟合(四十七)

ransac算法_RANSAC直線拟合與資料處理(四十八)