最近在找点的过程中,发现正极点会出现部分点的偏移,从而影响最终的结果,所以通过正极点的平均值来进行判断,对于正极点进行拟合。
int i,j; int anodey; int sumpointy=0,meananodey; int sizeanodes = anode.size(); //求正极点y值的平均值 for(i=0;i<sizeanodes;i++) { anodey=anode[i].y; sumpointy=sumpointy+anodey; } meananodey=sumpointy/sizeanodes; //对正极点进行遍历,对于过高或者过低的点进行调整 for (j=0;j<sizeanodes;j++) { anodey=anode[j].y; if (j==0) { if(abs(anodey-meananodey)>15&&abs(anodey-anode[j+1].y)>15) { anode[j].y=(anode[j+1].y+anode[j+2].y)/2; } continue; } else if (j==sizeanodes-1) { if(abs(anodey-meananodey)>15&&abs(anodey-anode[j-1].y)>15&&abs(anodey-anode[j-2].y)>15) { anode[j].y=(anode[j-1].y+anode[j-2].y)/2; } else { return 0; } } else if (j==sizeanodes-2) { if(abs(anodey-meananodey)>15&&abs(anodey-anode[j-1].y)>15&&abs(anodey-anode[j+1].y)>15) { anode[j].y=(anode[j-1].y+anode[j-2].y)/2; } continue; } else { if(abs(anodey-meananodey)>=12&&abs(anodey-anode[j-1].y)>12&&(abs(anodey-anode[j+2].y)>12||abs(anodey-anode[j+3].y)>12||abs(anodey-anode[j+7].y)>10)) { if (abs(anodey-meananodey)>12&&abs(anodey-anode[j-1].y)>12&&abs(anodey-anode[j+2].y)>12) { anode[j].y=(anode[j-1].y+anode[j+2].y)/2; } else if (abs(anodey-meananodey)>12&&abs(anodey-anode[j-1].y)>12&&abs(anodey-anode[j+3].y)>12) { anode[j].y=(anode[j-1].y+anode[j+3].y)/2; } else if (abs(anodey-meananodey)>=12&&abs(anodey-anode[j-1].y)>12&&abs(anodey-anode[j+7].y)>10) { anode[j].y=(anode[j-1].y+anode[j+7].y)/2; } } continue; } }
通过正极点的平均值对偏移正极点进行拟合
猜你喜欢
转载自blog.csdn.net/kai69/article/details/77528981
今日推荐
周排行