通过正极点的平均值对偏移正极点进行拟合

最近在找点的过程中,发现正极点会出现部分点的偏移,从而影响最终的结果,所以通过正极点的平均值来进行判断,对于正极点进行拟合。

	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