智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1645|回复: 2
打印 上一主题 下一主题

[软件类] 黑线提取

[复制链接]

3

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
QQ
威望
117
贡献
57
兑换币
64
注册时间
2013-3-30
在线时间
34 小时
跳转到指定楼层
1#
发表于 2013-7-10 11:44:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
大神帮忙看看,怎么我的黑线提取不出来,是软件写的有问题吗
////////////////////黑线提取,从中间往两边/////////////////////////////////
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):
怎么没有人

3

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
305
QQ
威望
164
贡献
75
兑换币
103
注册时间
2013-4-14
在线时间
33 小时
毕业学校
长沙理工大学
2#
发表于 2013-7-10 11:44:46 | 只看该作者
回复

使用道具 举报

3

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
QQ
威望
117
贡献
57
兑换币
64
注册时间
2013-3-30
在线时间
34 小时
3#
 楼主| 发表于 2013-7-14 18:18:20 | 只看该作者
没人回答吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-25 05:29 , Processed in 0.058242 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表