智能车制作
标题:
黑线提取
[打印本页]
作者:
1518591585
时间:
2013-7-10 11:44
标题:
黑线提取
大神帮忙看看,怎么我的黑线提取不出来,是软件写的有问题吗
////////////////////黑线提取,从中间往两边/////////////////////////////////
void get_heixian(void)
{
Picture_get();
for(i=0;i<ROW-2;i++)
{
a=0;b=0;c=0;flag_zuo=0;flag_you=0;
for(j=0;j<54;j++)
{
//////////右边检测/////////////////
if((Image_Data
[60+j]==1|Image_Data
[61+j]==1|Image_Data
[62+j]==1)&&(Image_Data
[63+j]
==0&&Image_Data
[64+j]==0&&Image_Data
[65+j]==0)) // 从白到黑S有3列白跳到3列黑,则记录为跳变
{
flag_you=1;
Image_Data
[63+j]=0;Image_Data
[64+j]=0;Image_Data
[65+j]=0;
a=63+j;
}
}
///////////左边检测/////////////
for(j=0;j<55;j++)
{
if((Image_Data
[60-j]==1&&Image_Data
[59-j]==1&&Image_Data
[58-j]==1)&&(Image_Data
[57-j]
==0|Image_Data
[56-j]==0|Image_Data
[55-j]==0))
{
flag_zuo=1;
Image_Data
[57-j]=0;Image_Data
[56-j]=0;Image_Data
[55-j]=0;
b=57-j;
}
}
if(flag_zuo==1&&flag_you==1)//左右两边都检测到黑线
{
c=(byte)((a+b)>>1);
Image_Data
[c]=0;
Image_Center
=c;
error1=60-c;
PWMDTY45=(872+Kp*error1);
}
if(flag_zuo==0&&flag_you==1)//左边丢线
{
c=(0+a)>>1;
Image_Data
[c]=0;
Image_Center
=c;
error1=60-c; //c负数
PWMDTY45=PWMDTY45-Kp*error1;
}
if(flag_zuo==1&&flag_you==0)//右边丢线
{
c=(b+120)>>1;
Image_Data
[c]=0;
Image_Center
=c;
error1=60-c;
PWMDTY45=(byte)(872-Kp*error1);
}
if(flag_zuo==0&&flag_you==0)//左右丢线
{
c=Image_Center[i-1]; //延续上一次的中心线
Image_Data
[c]=0;
Image_Center
=c;
error1=60-c;
PWMDTY45=(byte)(872+Kp*error1);
}
}
}
error1总为0或者1,不知道是怎么回事,这里面有几句是简单的舵机测试
补充内容 (2013-7-11 08:48):
这是我上传的采集图片,请高手看看
补充内容 (2013-7-11 08:49):
http://www.znczz.com/thread-151035-1-1.html
补充内容 (2013-7-11 16:43):
怎么没有人
作者:
xiyang588
时间:
2013-7-10 11:44
作者:
1518591585
时间:
2013-7-14 18:18
没人回答吗
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2