智能车制作

标题: 摄像头采集中线失败,想请大佬指点一二 [打印本页]

作者: 打油诗    时间: 2018-11-10 16:40
标题: 摄像头采集中线失败,想请大佬指点一二
下面的程序是基于山外鹰眼摄像头模块改的图像采集加中线合成,但是合成后的图像中线固定在屏幕左侧,并不能随着图像改变。如下图
求大佬指点一二,谢谢!

[attach]93767[/attach]


void  main(void)
{

    int y,x,i;    //y为行,x为列

    //初始化摄像头
    camera_init(imgbuff);                                  //这里设定  imgbuff 为采集缓冲区!!!!!!

    //配置中断服务函数
    set_vector_handler(PORTA_VECTORn ,PORTA_IRQHandler);    //设置PORTA的中断服务函数为 PORTA_IRQHandler
    set_vector_handler(DMA0_VECTORn ,DMA0_IRQHandler);      //设置DMA0的中断服务函数为 DMA0_IRQHandler

    while(1)
    {

        EnableInterrupts;
        //获取图像
        camera_get_img();                                   //摄像头获取图像

        DisableInterrupts;


        /***********  提供两种方式可供用户自行选择【二值化模式】、【灰度模式】  ************/
        /***  强调一点:所谓的灰度模式,实际上只有2个像素值,即已经二值化好的灰度模式。  ***/

#if 0       //不解压,直接发送二值化图像到上位机。上位机选择【二值化模式】   

        //发送图像到上位机
        vcan_sendimg(imgbuff, CAMERA_SIZE);                  //发送到上位机

#else   //解压,生成只有2个像素值的灰度图像到上位机。上位机选择【灰度模式】

        img_extract(img, imgbuff,CAMERA_SIZE);                  //解压图像
      //  for (x=0;x<60;x++)
      // img[x][40]=1;


       for (y=0;y<=59;y++)
      {
        for (x=39;x>=0;x--)
          if (img[y][x]==1)
            {

              zuoxian=x;
              break;
            }

        for (x=39;x<80;x++)
          if(img[y][x]==1)
            {  
              youxian=x;   
              break;

            }
        zhongjiandian[y][1]=(youxian+zuoxian)/2;
        zhongjiandian[y][2]=(youxian+zuoxian)/2+1;
      }


       for (i=0;i<=59;i++)
     {
        img[ zhongjiandian[1]]=1;
        img[ zhongjiandian[2]]=1;
     }
DELAY_MS(2);
        vcan_sendimg(img, CAMERA_W * CAMERA_H);                  //发送到上位机
#endif
    }
}


作者: 山外メ雲ジ_VCAN    时间: 2018-11-11 11:15
先看原始图像,如果正常,那就说明提取算法有问题。自己再慢慢分析,看看哪里异常
作者: 打油诗    时间: 2018-11-11 12:01
山外メ雲ジ_VCAN 发表于 2018-11-11 11:15
先看原始图像,如果正常,那就说明提取算法有问题。自己再慢慢分析,看看哪里异常

已经解决了,谢谢山哥。


作者: 小军    时间: 2019-1-23 14:13
打油诗 发表于 2018-11-11 12:01
已经解决了,谢谢山哥。

你是怎么解决的,方便说一下吗,我也出现这种情况了


作者: 打油诗    时间: 2019-1-24 11:23
小军 发表于 2019-1-23 14:13
你是怎么解决的,方便说一下吗,我也出现这种情况了

山外鹰眼摄像头使用硬件二值化,在单片机收到的图像缓存数据里,默认0为黑,1为白。而我在程序里把0当做白,1当做黑进行判断,所以处理出来的结果一直错误。只需要改过来就好了。





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2