金牌会员
- 积分
- 1629
- 威望
- 733
- 贡献
- 424
- 兑换币
- 468
- 注册时间
- 2012-12-20
- 在线时间
- 236 小时
- 毕业学校
- 江苏理工学院
|
晴风遗夏 发表于 2013-5-24 21:48
你们用的是偏差么?
用偏差的时候,我的处理是将中线由近到远取前一行的平均值,感觉过小s会平滑很多 mid ...
我表示程序不是很懂,应该是程序中的这部分来进行识别的吧,我直接贴出来你看看是什么原理
int leftfirst=0,rightfirst=64,lastmid=0,pre_left_point=3,pre_right_point=60;
zuo=0; you=0 ;
image_lost=0;
image_lost_str=0;
black_lost=0;
black_lost_str=0;
lineable=0;
i=31;
for(j=33;j>=1;j--)
{
if(after[j]==0&&after[j-1]==0&&after[j+1]==2&&after[j+2]==2)
{
flag_zuo=1;
leftfirst=j;
pre_left_point=j;
after[leftfirst]=0;
black_zuo[zuo]=leftfirst;
zuo++;
break;
}
}
for(j=35;j<=63;j++)
{
if(after[j]==0&&after[j+1]==0&&after[j-1]==2&&after[j-2]==2)
{
flag_you=1;
rightfirst=j;
pre_right_point=j;
after[rightfirst]=0;
black_you[you]=rightfirst;
zuo++;
break;
}
}
if( pre_right_point==0)
pre_right_point=61;
lastmid=leftfirst+rightfirst;
lastmid=lastmid/2;
for(i=30; i>=5; i--)
{
for(j=pre_left_point-3;j<=pre_left_point+15;j++)
{
if(after[j]==0&&after[j-1]==0&&after[j+1]==2&&after[j+2]==2)
{
flag_zuo=1;
leftfirst=j;
pre_left_point=j;
after[leftfirst]=0;
black_zuo[zuo]=leftfirst;
zuo++;
break;
}
}
for(j=pre_right_point+3;j>=pre_right_point-15;j--)
{
if(after[j]==0&&after[j+1]==0&&after[j-1]==2&&after[j-2]==2)
{
flag_you=1;
rightfirst=j;
after[rightfirst]=0;
black_you[you]=rightfirst;
you++;
break;
}
}
if(rightfirst==0)
rightfirst=64;
if(abs(rightfirst-pre_right_point)>10)
rightfirst=pre_right_point;
else
if(flag_you)
pre_right_point=rightfirst;
temp=leftfirst+rightfirst;
temp=temp/2;
if(abs(temp-lastmid)>5)
temp=lastmid;
lastmid=temp;
after[temp]=0;
Line_Center[25-count]=temp;
count++;
|
|