HTML5技术

我从半年前项目中的代码看到了什么? - ptsp(2)

字号+ 作者:H5之家 来源:H5之家 2016-10-27 14:00 我要评论( )

1 size_t CCFindInterCircle::calTotalLineCoorInfo(){ 2 vectorcoorInfo_s coorInfoVec; 3 for (vectorPoint2i::iterator it = interPointVec.begin(); it != interPointVec.end() ; ++ it) { calInfoOfTwoPoints(

1 size_t CCFindInterCircle::calTotalLineCoorInfo(){ 2 vector<coorInfo_s> coorInfoVec; 3 for (vector<Point2i>::iterator it = interPointVec.begin(); it != interPointVec.end() ; ++it) { calInfoOfTwoPoints(*it,this->centerPoint,coorInfoVec); 6 totalLineInfoVec.push_back(coorInfoVec); 7 coorInfoVec.clear(); 8 } 9 return totalLineInfoVec.size(); 10 }

 

3.求所有连线的变化率并归一化

   问题同上

1 size_t CCFindInterCircle::calTotalLineDeri(){ 2 vector<int> lineDeriVec; 3 for (vector<vector<coorInfo_s>>::iterator it = totalLineInfoVec.begin(); it != totalLineInfoVec.end(); ++it) { calLineDeri(*it,lineDeriVec,outsideRadius-insideRadius); 6 totalLineDeriVec.push_back(lineDeriVec); 7 lineDeriVec.clear(); 8 } normalLineDeri(); 11 return totalLineDeriVec.size(); 12 }

 

4.求取可参考的半径 提供10个数据

 

1 size_t CCFindInterCircle::calReferRaduis () { 2 3 vector<int>count; 4 count.resize(((outsideRadius - insideRadius) / lineSection) + 1); (size_t i = 0;i < totalLineDeriNorVec.size() ; i ++) { 7 for (size_t j = 0; j < totalLineDeriNorVec.at(i).size(); j++) { 8 if(totalLineDeriNorVec.at(i).at(j) > lineSection_thresh) 9 count[j / lineSection] ++; 10 } 11 } size_t referenceBestRaduisCount = 10; 15 referenceBestRaduis.resize(referenceBestRaduisCount); 16 vector<size_t> maxOrder; 17 size_t maxNumCount = 0,index = 0; 18 int max = 255,diff = 255; 19 while (maxNumCount < referenceBestRaduisCount) { 20 for (size_t k = 0;k < count.size() ; k++) { 21 if((max - count[k]) < diff){ 22 index = k; 23 diff = max - count[index]; 24 } 25 } 26 max = count[index]; 27 maxOrder.push_back(index); 28 referenceBestRaduis[maxNumCount] = ((outsideRadius - (index+1) * lineSection)); count[index] = 0; 32 diff = 255; 33 index = 0; 34 35 maxNumCount ++; 36 } 37 return referenceBestRaduis.size() ; 38 }

 

  看到半年前写的代码,心里的感觉是十分复杂的,一方面是自己的成长,另一方面又是自己的不足.

  没错,由于缺少了帮助我理解的注释,我已经放弃阅读"4."这样的代码了.只知道他的功能 :(

  因为我并不知道"尾处理"是在处理什么,而且"用一个算法解决..".并不能对我理解下面的算法起到多大的帮助.

  所以对于这样的注释我真想找那个时候的我好好谈谈!

  真的.

 

  问题变多了,我想了解这个类中一些变量的具体含义.

1 private: Mat processImage; 5 Mat drawImage; Point2i centerPoint; 9 size_t outsideRadius; 10 size_t insideRadius; 11 float increaseAngle; 12 int lineSection; 13 float lineSection_thresh; 14 int refeIncrThresh; 15 int lastRadius; currRadius; 18 bool isReset; 19 bool firstStart; vector<Point2i> interPointVec; 23 vector<vector<coorInfo_s>>totalLineInfoVec; 24 vector<vector<int>> totalLineDeriVec; 25 vector<vector<float>> totalLineDeriNorVec; 26 vector<int>referenceBestRaduis

 

  我的刀呢?

  

  当初开发的时候没想怎么合理的组织全部的数据,想着比较简单而且应该不用很多时间就能解决.

  于是是算到哪儿就是哪儿,就有了许多的"临时"的计算结果,而且许多都是可以设计为一个数据结构就可以包含在一起,而不用另开一个vector来存储.

  之后还要想清楚这几个vector之间的相互映射关系,这一点颇为痛苦.

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 记一次擦窗机器人项目的拯救 - NeuralWiki

    记一次擦窗机器人项目的拯救 - NeuralWiki

    2016-10-16 17:00

  • Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现 - Fonour

    Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的

    2016-09-26 14:00

  • 总结一下公司项目使用各种较新的前端技术和 Api 的一些经验。 - B1ncer

    总结一下公司项目使用各种较新的前端技术和 Api 的一些经验。 - B1nc

    2016-09-02 17:00

  • 快速入手别人的安卓项目??你信我,不会想错过这个~~~ - 南尘

    快速入手别人的安卓项目??你信我,不会想错过这个~~~ - 南尘

    2016-08-05 12:00

网友点评