智能车制作

 找回密码
 注册

扫一扫,访问微社区

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

摄像头采集数据解压后对其进行部分处理碰到的一些问题。

[复制链接]

1

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
41
威望
24
贡献
9
兑换币
15
注册时间
2018-1-1
在线时间
4 小时
跳转到指定楼层
1#
发表于 2018-3-20 16:25:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
参与的组别为双车会车。现在想的是做一个简单的两侧黑点对照功能。

left_num=0;
          right_num=0;      //左右黑点数目清零
          for(count_W=30;count_W<40;count_W++)
          {
            for(count_H=0;count_H<60;count_H++)
            {
              if (img[count_W][count_H]==0xFF)
              {
                left_num++;
              }
            }
          }           //采集中间左十行的黑点数目
          printf("%",left_num);
          for(count_W=40;count_W<50;count_W++)
          {
            for(count_H=0;count_H<60;count_H++)
            {
              if (img[count_W][count_H]==0x00)
              {
                right_num++;
              }
            }
          }          //采集中间右十行的黑点数目

对数组从中间三十行到四十行开始遍历循环返回的值并不能反映摄像头采集的真实情况(并且大部分计数得到十进制的88)

但如果将数组从零点开始进行遍历循环(计数大致满足摄像头采集到的黑点数目)
串口助手传输回的图像与数据也均符合预期。

同时尝试进入watch 查看img数组内存   发现其为定值0x00或无法查看。
解压函数和储存函数使用均为山外5.3版本
camera_get_img();                                   //摄像头获取图像
        /***********  提供两种方式可供用户自行选择【二值化模式】、【灰度模式】  ************/
        /***  强调一点:所谓的灰度模式,实际上只有2个像素值,即已经二值化好的灰度模式。  ***/
#if 1      //解压并直接发送二值化图像到上位机。上位机选择【二值化模式】
        //发送图像到上位机
        img_extract(img, imgbuff,CAMERA_SIZE);   
        vcan_sendimg(imgbuff, CAMERA_SIZE);                  //发送到上位机



void img_extract(void *dst, void *src, uint32_t srclen)
{
    uint8_t colour[2] = {255, 0}; //0 和 1 分别对应的颜色
    uint8_t * mdst = dst;
    uint8_t * msrc = src;
    //注:山外的摄像头 0 表示 白色,1表示 黑色
    uint8_t tmpsrc;
    while(srclen --)
    {
        tmpsrc = *msrc++;
        *mdst++ = colour[ (tmpsrc >> 7 ) & 0x01 ];
        *mdst++ = colour[ (tmpsrc >> 6 ) & 0x01 ];
        *mdst++ = colour[ (tmpsrc >> 5 ) & 0x01 ];
        *mdst++ = colour[ (tmpsrc >> 4 ) & 0x01 ];
        *mdst++ = colour[ (tmpsrc >> 3 ) & 0x01 ];
        *mdst++ = colour[ (tmpsrc >> 2 ) & 0x01 ];
        *mdst++ = colour[ (tmpsrc >> 1 ) & 0x01 ];
        *mdst++ = colour[ (tmpsrc >> 0 ) & 0x01 ];
    }
}
回复

使用道具 举报

12

主题

45

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2321
威望
1771
贡献
454
兑换币
191
注册时间
2016-6-4
在线时间
48 小时
毕业学校
社会中成长
2#
发表于 2018-3-21 20:01:44 | 只看该作者
   if (img[count_W][count_H]==0xFF),,,,楼组,这个是什么意思?
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
41
威望
24
贡献
9
兑换币
15
注册时间
2018-1-1
在线时间
4 小时
3#
 楼主| 发表于 2018-3-25 09:29:59 | 只看该作者
追步者 发表于 2018-3-21 20:01
if (img[count_W][count_H]==0xFF),,,,楼组,这个是什么意思?

如果img[count_W][count_H]为黑点...有什么问题嘛??
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-28 10:46 , Processed in 0.092332 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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