天天看点

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直线拟合与数据处理(四十八)