注册 登录
查看: 2023|回复: 15

【山外鹰眼】阳光下的,提高抗干扰的方法

[复制链接]
发表于 2019-5-17 15:02:57 | 显示全部楼层 |阅读模式
首先,阳光下,需要做好过滤炫光的干扰。具体,看这帖子。

【鹰眼】鹰眼在10CM高度的反光/炫光改善方法
http://www.vcan123.com/forum.php?mod=viewthread&tid=18998&ctid=6



其次,阳光下,光照的强度太大,为了加强阳光下适应性,需要对硬件进行修改:
拆开镜头座,把5个引脚的芯片拆下,铜线短接图中圈住的2个硬件。(芯片不需要焊接回去)
焊接的难度比较大,请找熟悉焊接的师兄帮忙。(芯片,用热风枪吹下来,风速不要太高,温度也不要太高,不要对着感光芯片吹。实在不行,可以付运费,寄回来我们帮忙改。)
有同学焊接,导致焊盘都掉了,这情况是没法救的。没把握,宁可付运费,给我们改!!!!
修改后,鹰眼变成输出 1白0黑(原本是1黑0白),解压函数,换一下数组顺序即可,对程序影响不大。
鹰眼短接.JPG

下图是上天台阳光下,测试采集效果。
用的是80*60小分辨率,你们比赛推荐用大分辨率,不然广角镜头,容易丟线。
镜头是150度镜头,勉强看到50cm的赛道两侧。
没铺蓝色的广告布,不过瓷砖地板的反光也挺强。
加了镜头厂家给的阳光薄膜,对人眼镜有效果,对摄像头感觉没效果。就不用管这个。

无标题.png
改动后,优点:对较亮的环境,适应性比较好。例如阳光下。
改动前,优点:对较暗的环境,适应性比较好。例如灯光不足的环境。


解压代码的修改方法:
  1. //压缩二值化图像解压(空间 换 时间 解压)
  2. //srclen 是二值化图像的占用空间大小
  3. void img_extract(uint8 *dst, uint8 *src, uint32 srclen)
  4. {
  5.         //uint8 colour[2] = {255, 0};   //0 和 1 分别对应的颜色
  6.                                                //注:山外的摄像头 0 表示 白色,1表示 黑色

  7.         uint8 colour[2] = {0, 255};   //0 和 1 分别对应的颜色
  8.                                                //注:山外的摄像头,改阳光后,1 表示 白色,0表示 黑色
  9.         uint8 tmpsrc;
  10.         while(srclen --)
  11.         {
  12.                 tmpsrc = *src++;
  13.                 *dst++ = colour[ (tmpsrc >> 7 ) & 0x01 ];
  14.                 *dst++ = colour[ (tmpsrc >> 6 ) & 0x01 ];
  15.                 *dst++ = colour[ (tmpsrc >> 5 ) & 0x01 ];
  16.                 *dst++ = colour[ (tmpsrc >> 4 ) & 0x01 ];
  17.                 *dst++ = colour[ (tmpsrc >> 3 ) & 0x01 ];
  18.                 *dst++ = colour[ (tmpsrc >> 2 ) & 0x01 ];
  19.                 *dst++ = colour[ (tmpsrc >> 1 ) & 0x01 ];
  20.                 *dst++ = colour[ (tmpsrc >> 0 ) & 0x01 ];
  21.          }
  22. }

如果是用LCD显示函数,数据是鹰眼的原始数据,自行把里面的函数,颜色交换就可以。

本帖被以下淘专辑推荐:

回复

使用道具 举报

 楼主| 发表于 2019-5-17 15:10:26 | 显示全部楼层
天台没铺赛道,就直接简单瓷砖地板搭建了。

150度的镜头,虽然看得广,但看不远。

回复 支持 1 反对 0

使用道具 举报

发表于 2019-5-17 19:31:07 | 显示全部楼层
顶起来
回复 支持 反对

使用道具 举报

发表于 2019-5-17 22:58:12 | 显示全部楼层
那巡查边界算法也只用取反就可以了吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-18 11:00:46 | 显示全部楼层
小白兔崽子 发表于 2019-5-17 22:58
那巡查边界算法也只用取反就可以了吗

解压的时候,交换解压函数里的数组的2个元素,即可。
回复 支持 反对

使用道具 举报

发表于 2019-5-19 15:47:50 | 显示全部楼层
山外メ雲ジ 发表于 2019-5-17 15:10
天台没铺赛道,就直接简单瓷砖地板搭建了。

150度的镜头,虽然看得广,但看不远。

软件中不是有能颠倒黑白的寄存器么,改这个和那个在效果上有区别么?


回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-20 17:09:47 | 显示全部楼层
QQYY 发表于 2019-5-19 15:47
软件中不是有能颠倒黑白的寄存器么,改这个和那个在效果上有区别么?

不是为了简单的颠倒黑白。硬件改了后,测试阳光下,效果好很多。有同学已经改了,在阳光赛道上跑了。
回复 支持 反对

使用道具 举报

发表于 2019-5-21 00:09:34 | 显示全部楼层
顶顶顶顶顶,山外哥还是强👏👏👏
回复 支持 反对

使用道具 举报

发表于 2019-5-23 23:07:10 | 显示全部楼层
请问山外哥,我更改了摄像头硬件,使用原来的摄像头程序,图像的确黑白颠倒了,但是我更改了img_extract()解压函数中第一行的uint8_t colour[2] = {0, 255}; ,但是感觉还是啥也没变啊,还是黑白颠倒了。请问咋回事嘞
回复 支持 反对

使用道具 举报

发表于 2019-5-24 12:07:35 | 显示全部楼层
求助山外哥
回复 支持 反对

使用道具 举报

发表于 2019-5-24 15:49:44 | 显示全部楼层
我喜欢小仙女 发表于 2019-5-23 23:07
请问山外哥,我更改了摄像头硬件,使用原来的摄像头程序,图像的确黑白颠倒了,但是我更改了img_extract( ...

解压函数,只针对解压后的图像数据,

如果你用原始图像数据进行显示,还是不变的。把图像显示函数,里面的2个颜色,交换一下位置,就可以。
回复 支持 反对

使用道具 举报

发表于 2019-5-25 18:38:01 | 显示全部楼层
山外哥,那改完这个后阈值需要怎么设置才能到达这种效果呢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-28 16:43:44 | 显示全部楼层
四九 发表于 2019-5-25 18:38
山外哥,那改完这个后阈值需要怎么设置才能到达这种效果呢。

帖子里的图,是没改阈值,直接 0xFF。
回复 支持 反对

使用道具 举报

发表于 2019-5-30 17:57:23 | 显示全部楼层
本帖最后由 Cheehow 于 2019-5-30 18:34 编辑

谢谢山外哥
回复 支持 反对

使用道具 举报

发表于 2019-6-2 04:44:48 | 显示全部楼层
本帖最后由 aytc100 于 2019-6-2 04:46 编辑

74LVC1G14?是的话可以同位换成74LVC1G86,原来悬空的1脚接单片机的一个GPIO(输出),这样1脚高电平为强光模式,1脚低电平为弱光模式,适应能力更强
回复 支持 反对

使用道具 举报

发表于 前天 21:06 | 显示全部楼层
请问这么做的原理是什么呢
回复 支持 反对

使用道具 举报

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

本版积分规则

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