wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

標題: ROS中激光雷達數據處理之特征提取 源程序 [打印本頁]

作者: 18864960139    時間: 2022-3-3 11:10
標題: ROS中激光雷達數據處理之特征提取 源程序
   ROS中激光雷達的數據就是一串距離值,每隔1度一個距離值(具體情況得看激光雷達的參數),通過實測激光雷達的數據提取關鍵特征,直線,圓弧

  1. // 進行多邊形擬合: Points : 輪廓上的點      n -- 輪廓點數目  Eps -- 擬合精度
  2. // 返回值: 若該輪廓段需要分段,則返回分段點在該輪廓點列中的索引,否則,返回 0 表示不需要分段
  3. // 這里是整個算法計算復雜性最大的一個地方
  4. // 為了提高程序運行效率,對點到直線的距離計算進行改進:
  5. // 多邊形擬合中的直線是由點列中的點決定的
  6. // 為了計算點到直線的距離,
  7. // 采用坐標系旋轉,將直線旋轉到x軸方向,這樣點到直線的距離即為各個點
  8. // 在坐標旋轉后的y值的絕對值
  9. // 同時,坐標旋轉矩陣在該次運算中為定值,只需一次計算,不需要多次的開方或三角計算
  10. int OpenRadar::PolyContourFit( int* X, int* Y, int n , float Eps ) // 根據輪廓點,用多邊形擬合該輪廓點   
  11. {
  12.     double dis = sqrt((double)(((X[0] - X[n - 1])*(X[0] - X[n - 1])) +  
  13.                      ((Y[0] - Y[n - 1])* (Y[0] - Y[n - 1]))));
  14.     double cosTheta = (X[n- 1] - X[0]) / dis;
  15.     double sinTheta = - ( Y[n- 1] - Y[0] )/dis;
  16.     double MaxDis = 0;
  17.     int i ;
  18.     int MaxDisInd = -1;
  19.     double dbDis;
  20.     for(i = 1 ; i < n - 1 ; i++)
  21.     {
  22.         // 進行坐標旋轉,求旋轉后的點到x軸的距離
  23.         dbDis = abs( (Y[i] - Y[0]) * cosTheta + (X[i] - X[0])* sinTheta);
  24.         if( dbDis > MaxDis)
  25.         {
  26.             MaxDis = dbDis;
  27.             MaxDisInd = i;
  28.         }
  29.     }
  30.     if(MaxDis > Eps)
  31.     {
  32.         return MaxDisInd;
  33.         //        cout << "Line 1 : " << endl;
  34.         //        cout << "Start :" << Points[0].x << "  " << Points[0].y  << " --- " << Points[MaxDisInd].x << "  " << Points[MaxDisInd].y << endl;
  35.         //        cout << "角度: "<<180 * atan2(Points[0].y - Points[MaxDisInd].y , Points[0].x - Points[MaxDisInd].x ) / 3.1415926;
  36.         //        cout << "Line 2 :" << endl;
  37.         //        cout << "Start :" << Points[MaxDisInd].x << "  " << Points[MaxDisInd].y  << " --- " << Points[n - 1].x << "  " << Points[n - 1].y << endl;
  38.         //        cout << "角度: "<< 180 * atan2(Points[n - 1].y - Points[MaxDisInd].y , Points[n - 1].x - Points[MaxDisInd].x ) / 3.1415926;
  39.     }
  40.     //    else{
  41.     //        cout << "Line 1 : " << endl;
  42.     //        cout << "Start :" << Points[0].x << "  " << Points[0].y  << " --- " << Points[n - 1].x << "  " << Points[n - 1].y << endl;
  43.     //        cout << "角度: "<<180 * atan2(Points[n - 1].y - Points[0].y , Points[n - 1].x - Points[0].x ) / 3.1415926;

  44.     //    }
  45.     return 0;
  46. }

  47. //將折線拆成兩段
  48. int OpenRadar::BreakPolyLine(vector<int>& BreakedRadarRho,
  49.                              vector<double>& BreakedRadarTheta,
  50.                              vector<int>& SepRadarRho ,   
  51.                              vector<double>&SepRadarTheta)
  52. {
  53.     int rho = 0;
  54.     double theta = 0.0;
  55.     int X[1200] = {0};
  56.     int Y[1200] = {0};
  57.     int rhoCopy[1200] = {0};
  58.     double thetaCopy[1200] = {0};
  59.     int pointCnt = 0;
  60.     int lineCnt = 0;
  61.     int N = 0;
  62.     SepRadarRho.clear();
  63.     SepRadarTheta.clear();
  64.     Corners.clear();

  65.     //進行多次迭代,將所有的折線都拆分成直線段
  66.    
  67.    vector<int>CornerIndex;
  68.    int CornerCnt = 0;
  69.    int tempIndex = 0;
  70.     for (int i = 0; i < static_cast<int>(BreakedRadarRho.size());i++)
  71.     {
  72.         rho   = BreakedRadarRho.at(i);
  73.         theta = BreakedRadarTheta.at(i);

  74.         if (rho < 0)
  75.         {
  76.             if (pointCnt > 200)//數目比較少的點直接拋棄
  77.             {
  78.                 CornerIndex.clear();
  79.                 CornerCnt = FindCorners(CornerIndex,X,Y,0,pointCnt,200);

  80.                 if (CornerIndex.size() == 0)
  81.                 {
  82.                     for (int k = 0 ; k < pointCnt;k++)
  83.                     {
  84.                         SepRadarRho.push_back(rhoCopy[k]);
  85.                         SepRadarTheta.push_back(thetaCopy[k]);
  86.                     }
  87.                     SepRadarRho.push_back(-1);
  88.                     SepRadarTheta.push_back(1000.0);
  89.                     lineCnt++;
  90.                 }else
  91.                 {
  92.                     tempIndex = 0;
  93.                     for (int k = 0 ; k < pointCnt;k++)
  94.                     {
  95.                         SepRadarRho.push_back(rhoCopy[k]);
  96.                         SepRadarTheta.push_back(thetaCopy[k]);
  97.                         if (k == CornerIndex.at(tempIndex))
  98.                         {
  99.                             SepRadarRho.push_back(-1);
  100.                             SepRadarTheta.push_back(1000.0);
  101.                             lineCnt++;
  102.                             if (tempIndex < static_cast<int>(CornerIndex.size()) -1)
  103.                             {
  104.                                 tempIndex++;
  105.                             }  
  106.                         }
  107.                     }
  108.                     SepRadarRho.push_back(-1);
  109.                     SepRadarTheta.push_back(1000.0);
  110.                     lineCnt++;
  111.                 }
  112.             }
  113.             pointCnt = 0;
  114.             continue;
  115.         }
  116.         X[pointCnt] = static_cast<int>(rho*cos(theta));
  117.         Y[pointCnt] = static_cast<int>(rho*sin(theta));
  118.         rhoCopy[pointCnt]   = rho;
  119.         thetaCopy[pointCnt] = theta;
  120.         pointCnt++;
  121.     }
  122.    
  123.     //cout<<"lineCnt: "<<lineCnt<<endl;
  124.     return lineCnt;
  125. }

  126. //進行直線擬合
  127. void OpenRadar::FitLine(vector<LinePara>& FittedLine,vector<int>& RadarRho,vector<double>& RadarTheta){

  128.     int rho = 0;
  129.     double theta = 0.0;
  130.     int X[1200] = {0};
  131.     int Y[1200] = {0};
  132.     int pointCnt = 0;
  133.     LinePara tmpLinePara;
  134.     FittedLine.clear();
  135.     for (int i = 0 ; i < static_cast<int>(RadarRho.size());i++)
  136.     {
  137.         rho = RadarRho.at(i);
  138.         theta = RadarTheta.at(i);

  139.         if (rho < 0)
  140.         {
  141.             if (pointCnt > 100 )//點數目足夠多的點列才進行直線擬合
  142.             {
  143.                 WeightedFit(X ,Y ,pointCnt,&tmpLinePara);
  144.                 FittedLine.push_back(tmpLinePara);

  145.                 //存儲擬合的數據和擬合結果
  146.        /*         FILE* pF = fopen("line.txt","w");
  147.                 fprintf(pF,"[a]\n");
  148.                 fprintf(pF,"%f\n",tmpLinePara.a);
  149.                 fprintf(pF,"[b]\n");
  150.                 fprintf(pF,"%f\n",tmpLinePara.b);
  151.                 fprintf(pF,"[x]\n");
  152.                 for (int j = 0; j < pointCnt ;j++)
  153.                 {
  154.                     fprintf(pF,"%d,",X[j]);
  155.                 }
  156.                 fprintf(pF,"\n[y]\n");
  157.                 for (int j = 0; j < pointCnt ;j++)
  158.                 {
  159.                     fprintf(pF,"%d,",Y[j]);
  160.                 }
  161.                 fclose(pF);*/

  162.                 pointCnt = 0;
  163.                 continue;
  164.             }else {
  165.                 pointCnt = 0;
  166.                 continue;
  167.             }   
  168.         }

  169.         X[pointCnt] = static_cast<int>(rho*cos(theta));
  170.         Y[pointCnt] = static_cast<int>(rho*sin(theta));
  171.         pointCnt++;
  172.     }
  173.    /* for (int i = 0; i < FittedLine.size();i++)
  174.     {
  175.         cout<<"a: "<<FittedLine.at(i).a<<"  b: "<<FittedLine.at(i).b<<" ";
  176.         cout<<"x1: "<<FittedLine.at(i).startPoint.x<<" "
  177.             <<"y1: "<<FittedLine.at(i).startPoint.y<<" "
  178.             <<"x1: "<<FittedLine.at(i).endPoint.x<<" "
  179.             <<"y1: "<<FittedLine.at(i).endPoint.y<<endl;
  180.     }*/

  181. }
復制代碼


以上代碼: OpenRadar7.0.zip (25.96 KB, 下載次數: 13)





歡迎光臨 (http://m.izizhuan.cn/bbs/) Powered by Discuz! X3.1
免费一级黄色大片| 久久亚洲精品成人| 国产九色在线| 亚洲人辣妹窥探嘘嘘| 亚洲欧美在线x视频| 日日摸夜夜添夜夜添亚洲女人| 久久精品国产麻豆| 无码任你躁久久久久久老妇| 国产欧美精品一区二区三区-老狼| 国产精品久久99| 九九热精品视频在线观看| 天天摸天天做天天爽| 久久久久久久极品内射| 一区二区三区在线视频看| 免费在线亚洲| 午夜小视频在线| 国内毛片毛片毛片毛片| 久久6免费视频| 91精品啪在线观看麻豆免费| 色乱码一区二区三区88 | 99久久夜色精品国产网站| 中文字幕系列一区| 涩涩视频网站| 久久久久亚洲av无码专区| 亚洲第一成肉网| 黄色99视频| 亚洲无亚洲人成网站77777| 久久久不卡网国产精品一区| 国产永久精品大片wwwapp| 国产精品va在线观看视色| 亚州欧美精品suv| 看黄色录像一级片| 欧美国产日韩激情| 海角国产乱辈乱精品视频| 午夜亚洲福利老司机| 久久久久国产精品午夜一区| 国产一区二区三区视频在线| 一本到av在线| 无码精品在线观看| 影音先锋男人资源在线观看| 99视频在线免费播放| 日韩av电影手机在线观看| 欧美人与禽zozo性伦| 国产成人99久久亚洲综合精品| 成人高潮a毛片免费观看网站| 亚州av电影免费在线观看| 污视频软件在线观看| 成人免费视频入口| 欧美激情xxxxx| 亚洲制服欧美中文字幕中文字幕| 亚洲麻豆一区| 亚洲免费一区三区| 午夜在线播放| 青青青手机在线视频观看| 欧美插插视频| 亚洲天堂狠狠干| 黄色短视频在线观看| 可以免费看的黄色网址| 国产精品久久国产精品99gif| 亚洲国产天堂久久综合网| 亚洲国产精品传媒在线观看| 国内精品久久久久久久影视蜜臀| 精品乱码一区二区三区四区| 成人免费视频| 99视频资源网| 伊人国产视频| 艳妇乳肉豪妇荡乳av无码福利| aa片在线观看视频在线播放| 初高中福利视频网站| 欧美日韩一区二区三区电影| 一区二区三区三区在线| 麻豆md0077饥渴少妇| 一级二级三级欧美| 五月天av影院| 国产欧美精品一区二区三区| 久久激情五月丁香伊人| 欧美久久一二区| 亚洲三级在线看| 国产高清无密码一区二区三区| 亚洲国产精品久久久久蝴蝶传媒| 欧美一级做一级爱a做片性| 91香蕉在线观看| 在线麻豆国产传媒1国产免费| 久久午夜剧场| 91蝌蚪在线观看视频| 精品国产伦一区二区三| 国产高潮久久久| 国产伦精品一区二区三区妓女 | 麻豆国产精品一区二区三区 | 国产第一页在线| 尤物免费看在线视频| av影音在线| 欧美最猛性xxxx高清| 国产成人免费视频app| 亚洲人视频在线观看| 九九热中文字幕| 国产精品女同一区二区| 四虎免费在线视频| 青青草视频网站| 中文字幕在线视频精品| 天天躁日日躁狠狠躁av| 中文字幕第24页| 中文字幕avav| www午夜视频| 97视频在线免费| 亚洲成人av免费看| av网站在线观看不卡| 樱空桃在线播放| 一区二区传媒有限公司| 国产成人在线小视频| 日本不卡一区二区三区视频| av一区二区三区四区电影| 国产成人综合一区二区三区| 久久久久久久一区二区| 久久夜色撩人精品| 国产91色在线|| 久久国产精品 国产精品| 久久伊人一区| 日本在线播放不卡| 草b视频在线观看| 在线观看一区二区三区视频| 日本中文在线视频| 天天鲁一鲁摸一摸爽一爽| 免费无码国产精品| 99精品在线播放| 波多野结衣一区二区在线 | 国产精品一区二区免费在线观看| 午夜免费福利网站| 清纯粉嫩极品夜夜嗨av| 成人av无码一区二区三区| 天堂网www天堂在线网| 青青视频在线观| 99只有精品| 在线播放一区二区精品视频| 午夜视频一区| 老司机亚洲精品| 激情文学综合插| 国产一区二区三区在线观看免费视频 | 中文字幕国产传媒| youjizz亚洲女人| 久久久一二三区| 伊人亚洲视频| 国产日韩欧美一区二区三区视频| 国产又白又嫩又爽又黄| 在线视频色在线| 国产九九九九| 偷拍25位美女撒尿视频在线观看| 97成人超碰| 一区二区亚洲精品| 三级欧美韩日大片在线看| 国产日产欧美一区二区三区| 亚洲超丰满肉感bbw| 日韩精品中文字幕在线观看| 菠萝蜜影院一区二区免费| 麻豆乱码国产一区二区三区| 97中文在线观看| 中文字幕在线亚洲三区| 日本a在线免费观看| 草草草在线视频| 老司机av网站| 永久免费看mv网站入口| 天堂网在线播放| 在线观看黄色小视频| 国产一区二区av在线| 日韩经典中文字幕一区| 天天综合色天天综合| 日韩欧美区一区二| 一本色道久久88综合亚洲精品ⅰ| 欧美放荡办公室videos4k| 茄子视频成人在线观看| 在线免费观看污视频| 久久久久久久久久一区二区三区| 四虎影视最新网址| 337p日本欧洲亚洲大胆鲁鲁| 成人在线免费电影网站| 亚洲美女网站| 亚洲成人在线观看视频| 亚洲国产天堂网精品网站| 成人av在线网址| avove在线观看| 黄色国产在线播放| 日韩欧美在线综合| 秋霞在线视频| 国内精品久久久久久久久电影网| 不卡一区二区在线| 欧美日韩在线视频首页| 国产视频精品免费播放| 国产精品久久久对白| 日本精品久久久久久久久久| 午夜精品短视频| 欧美私人情侣网站| 亚洲精品国产精品国自| 欧美色图影院| 国产精品xx| 国产精品亚洲二区| 国产欧美中文在线| 欧美成人精精品一区二区频| 久久人人爽人人爽人人片av高请| 四虎精品欧美一区二区免费| 成人免费无码大片a毛片| 天堂成人在线观看| av免费在线观看网址| 国产尤物精品| 欧美亚日韩国产aⅴ精品中极品| 久久久999精品| www.18av.com| 亚洲午夜精品久久久久久高潮| 免费a级毛片永久免费| 亚洲一区在线日韩在线深爱| 亚洲老女人视频免费| 国模大尺度一区二区三区| 欧美成va人片在线观看| 色噜噜一区二区| 国产五月天婷婷| 韩国福利一区| 欧美性xxx| 韩日精品视频| 欧美在线观看18| 午夜精品一区二区三区视频免费看| 久久久影院一区二区三区 | 日韩.欧美.亚洲| av无码av天天av天天爽| 国产性色视频| 欧美日韩国产一区二区在线观看| 蜜臀va亚洲va欧美va天堂| 亚洲嫩草精品久久| 成年人在线观看| 99热亚洲精品| 亚洲国产精品视频在线观看| 亚洲影视在线播放| 激情亚洲综合在线| 亚洲国产精品久久久久秋霞不卡| 欧美一级淫片丝袜脚交| 男女爱爱视频网站| 日本久久综合网| 国产三级电影在线| 午夜在线视频一区二区区别| 亚洲第一黄色网| 亚洲一区二区三区av无码| 99久久久久久久| 视频一区二区三区国产| 欧美日本中文| 色呦呦网站一区| 国产999精品久久久| 91丨porny丨对白| 2018天天操夜夜操| 欧美激情理论| 中文字幕在线观看不卡视频| 国产精品嫩草视频| 中文字幕无码毛片免费看| 亚洲色图14p| 九色蝌蚪自拍| 亚洲精品一级二级| 久久久精品免费网站| 国产成人精品免高潮在线观看| 国产精品一级黄片| a√免费观看在线网址www| 国产精品a级| 亚洲精品一区二区三区不| 男人的天堂日韩| 亚洲成人黄色片| 香蕉视频国产在线观看| 久草热8精品视频在线观看| 欧美一区二区成人| 成人精品一二区| 国产香蕉在线视频| 在线a免费看| 不卡视频免费播放| 国产精品视频久久| 久久久久久免费观看| jizz在线观看中文| av男人天堂一区| 91亚洲精品一区二区| 国产无遮挡呻吟娇喘视频| 成人观看网址| 亚洲影视在线播放| 女女同性女同一区二区三区按摩| 亚洲小说图片区| 五月天亚洲色图| 亚洲国产日韩一级| 国产一区私人高清影院| 国产人妻黑人一区二区三区| 91黑丝在线| 久久er精品视频| 欧美又大又硬又粗bbbbb| 色婷婷在线视频观看| 亚洲电影欧美电影有声小说| 加勒比久久综合| 亚洲黄一区二区| 性色av浪潮av| 欧美激情图区| 亚洲视频一区| 久久91精品国产91久久久| 91蝌蚪视频在线| 黑料吃瓜在线观看| 国产一区二区三区视频在线播放| 国产精品免费久久久久久| 国产一区二区视频免费| 成人在线视频区| 日韩美女视频一区二区在线观看| 91香蕉视频在线观看视频| 在线免费黄色毛片| 99久久精品免费观看| 久久久久久九九| 一色屋成人免费精品网站| 欧美区一区二| 欧美在线视频网站| 无码人妻丰满熟妇啪啪欧美| 一区二区三区视频网站| 亚洲天堂网中文字| 国产亚洲精品久久久久久久| eeuss影院www在线| 欧美三区在线| 992tv成人免费影院| 精品一区二区无码| 高清精品视频| 欧美日韩国产一级| 亚洲国产日韩在线一区| 激情在线视频| 国产亚洲精彩久久| 欧美亚洲日本国产| 国产农村妇女精品久久| 午夜在线观看视频| 精品国产福利在线| 天天色综合社区| 你懂的好爽在线观看| 精品中文av资源站在线观看| 99一区二区三区| 天堂√中文在线| 欧美中文日韩| 成人国产1314www色视频| 久久九九热视频| 日韩专区中文字幕一区二区| 成人综合色站| 国产手机视频在线| 精品视频99| 日韩精品一区二区三区第95| 日韩av影视大全| 欧美日本高清| 亚洲图片激情小说| 亚洲精品一区二区三区樱花| 亚洲欧美国产高清va在线播放| 欧美片网站免费| 中文字幕日韩欧美| 少妇精品无码一区二区免费视频| 国内老司机av在线| 91精品欧美一区二区三区综合在| 中文字幕第100页| av在线免费观看网站| 欧美日韩国产专区| 国产+高潮+白浆+无码| 伊人网在线播放| 亚洲成人av一区| www.偷拍.com| 97人澡人人添人人爽欧美| 亚洲在线视频一区| 四虎成人在线播放| 国模精品视频| 亚洲精品美女久久久| 久操视频免费在线观看| 日本国产精品| 日韩专区在线播放| 在线观看国产黄| 亚洲视频碰碰| 欧美大陆一区二区| 国产特级嫩嫩嫩bbb| 亚洲欧美日韩国产综合| 色姑娘综合天天| 黄瓜视频成人app免费| 在线综合+亚洲+欧美中文字幕| www.涩涩爱| 国产亚洲观看| 久久久综合av| 欧美无遮挡国产欧美另类| 成人在线综合网站| 亚洲国产欧美不卡在线观看| 91大神在线资源观看无广告| 一区二区三区四区av| 91传媒久久久| 在线观看av免费| 日韩毛片在线看| 在线观看福利一区| 国产在线小视频| 日韩一区二区三区视频在线观看| 可以直接看的无码av| 成人美女视频| 精品国产一区二区三区久久影院 | 在线视频观看亚洲| 成人午夜电影久久影院| 欧美二区在线视频| 日韩电影免费观看| 欧美人妖巨大在线| 国产午夜福利一区二区| 欧美粗暴jizz性欧美20| 免费久久久一本精品久久区| 最新天堂资源在线| 欧美高清视频一二三区| 综合网在线观看| jiujiure精品视频播放| 99热最新在线|