亿加合和智能车制作

标题: 罗伯特边缘检测分享 [打印本页]

作者: 血之哀    时间: 2016-5-22 19:07
标题: 罗伯特边缘检测分享
废话不说先上效果图file:///C:\Users\Administrator\Documents\Tencent Files\1819052350\Image\C2C\LD3PVU7~8~X_B4VVJWS3LN1.jpg

作者: 血之哀    时间: 2016-5-22 19:11
关于罗伯特之前看了很多的资料但是总是感觉云里雾里的所以自己就写了一个比较简单的算法,效果还是不错的
作者: 潮流子韩    时间: 2016-5-22 19:16
66666666666
作者: 潮流子韩    时间: 2016-5-22 19:16
李大神刁刁的
作者: 潮流子韩    时间: 2016-5-22 19:18
楼主摄像头 超4米
作者: 血之哀    时间: 2016-5-22 19:21
标题: RE: 罗伯特边缘检测分享
[attach]85688[/attach][attach]85687[/attach][attach]85686[/attach]

作者: 血之哀    时间: 2016-5-22 19:22
实现代码如下
static void UserApp(void)
{
    uint32_t i,j;
   // static uint32_t cnt;
               uint8_t A,B,C,D;
               A=0;B=0;C=0;D=0;
    for(i=0;i<OV7620_H;i++)
    {
        for(j=0;j<OV7620_W;j++)
        { A=CCDBuffer[i][j];
                      B=CCDBuffer[i][j+1];
                      C=CCDBuffer[i+1][j];
                      D=CCDBuffer[i+1][j+1];
                      CCDBuffer[i][j]=(int8_t)(ABS(D-A)+ABS(C-B));
                           if(CCDBufferw[i][j]>255)CCDBuffer[i][j]=255;
            ili9320_write_pixel(OV7620_H - i, OV7620_W- j, RGB2COLOR(CCDBuffer[i][j], CCDBuffer[i][j], CCDBuffer[i][j]));
           //printf("%d",(CCDBuffer[i][j]) );
                                }
    }
}
作者: 血之哀    时间: 2016-5-22 19:23
如果大家觉得有用请顶一下帖子
作者: 血之哀    时间: 2016-5-22 19:25
欢迎大家加我QQ大家一起讨论做车
作者: 血之哀    时间: 2016-5-22 19:25
QQ:1819052350
验证我的名字:李世明
作者: 潮流子韩    时间: 2016-5-22 19:32
血之哀 发表于 2016-5-22 19:25
QQ:1819052350
验证我的名字:李世明

一波学弟要加你了

作者: g847279681    时间: 2016-5-22 21:42
比的是速度,准确,觉得这个有点浪费时间
作者: 血之哀    时间: 2016-5-22 22:17
g847279681 发表于 2016-5-22 21:42
比的是速度,准确,觉得这个有点浪费时间

不浪费时间的我刚刚测了比起软件二值化快了近一倍,用这个就不用二值化了

作者: 血之哀    时间: 2016-5-22 22:21
g847279681 发表于 2016-5-22 21:42
比的是速度,准确,觉得这个有点浪费时间

当然比赛的主要目的还是比速度这个只是数据的采集处理方式,小车的速度还是和后期的逆天算法有关

作者: g847279681    时间: 2016-5-22 22:21
鹰眼路过~
作者: 六安飞雨    时间: 2016-5-22 22:48
6666666666666666666
作者: The--One    时间: 2016-5-23 12:45
这样还是要找边线吧,硬件二值化还是要好一点,不过这样可以学很多
作者: ①個亾◆◆潇灑    时间: 2016-5-23 17:20
6666
作者: 血之哀    时间: 2016-5-23 18:23
The--One 发表于 2016-5-23 12:45
这样还是要找边线吧,硬件二值化还是要好一点,不过这样可以学很多

找边界是肯定的不过其实就是找个跳变很简单,速度也快,当然软件的速度永远是跟不上硬件的,硬件二值化速度快基本就不费时间,硬件二值化我也在用效果是不错不过硬件二值化也是有缺点的,就是阈值是固定的摄像头从初始设置是设置的比较器数值就是阈值。现在我正在做硬件二值化动态阈值,思想是用一个高精度的光敏器件作为阈值参考。

作者: aytc100    时间: 2016-5-23 18:26
The--One 发表于 2016-5-23 12:45
这样还是要找边线吧,硬件二值化还是要好一点,不过这样可以学很多

硬件二值化,做得好NB,做不好SB

作者: 血之哀    时间: 2016-5-23 18:56
aytc100 发表于 2016-5-23 18:26
硬件二值化,做得好NB,做不好SB

同意

作者: 海松之夏    时间: 2016-5-23 21:12
只想问问,这样做有什么好处???
作者: 血之哀    时间: 2016-5-24 00:06
海松之夏 发表于 2016-5-23 21:12
只想问问,这样做有什么好处???

找到的边界最为准确,不用二值化,而且速度快,代码简单(只有四行)

作者: 血之哀    时间: 2016-5-24 00:07
海松之夏 发表于 2016-5-23 21:12
只想问问,这样做有什么好处???

如果感兴趣您可以试试(试试就知道效果了,不会让你失望的)

作者: The--One    时间: 2016-5-24 00:08
血之哀 发表于 2016-5-23 18:23
找边界是肯定的不过其实就是找个跳变很简单,速度也快,当然软件的速度永远是跟不上硬件的,硬件二值化速 ...

好厉害,自适应是好,但是感觉没必要吧,单纯比赛的话,我感觉固定阈值其实够了

作者: 血之哀    时间: 2016-5-24 00:21
The--One 发表于 2016-5-24 00:08
好厉害,自适应是好,但是感觉没必要吧,单纯比赛的话,我感觉固定阈值其实够了

你说的也对,不过我觉得不能把比赛当比赛做做小车就是追求一种极致,现在多用几种硬件方案,软件追求一些高级算法,这些在将来都是宝贵的经验!您说呢

作者: 血之哀    时间: 2016-5-24 00:25
The--One 发表于 2016-5-24 00:08
好厉害,自适应是好,但是感觉没必要吧,单纯比赛的话,我感觉固定阈值其实够了

明年我会推出自适应阈值的硬件二值化摄像头,和CCD

作者: The--One    时间: 2016-5-24 01:55
血之哀 发表于 2016-5-24 00:21
你说的也对,不过我觉得不能把比赛当比赛做做小车就是追求一种极致,现在多用几种硬件方案,软件追求一些 ...

好厉害 比赛完了,可以研究研究

作者: 东方斗魂    时间: 2016-5-24 13:15
顶,大神屌屌的
作者: hgdyyzw    时间: 2016-5-24 14:41
:lol:lol:lol
作者: weiruofei    时间: 2016-5-25 13:04
66666
作者: 2862356756    时间: 2016-5-25 13:25
可以:D
作者: 血之哀    时间: 2016-5-26 00:54
本算法适合于非硬件二值化摄像头
作者: A楼飘房    时间: 2016-5-26 07:43
学习一下了。
作者: 599180774    时间: 2016-5-26 11:43
66666666的
作者: 每天快乐的时光    时间: 2016-5-26 22:52
这句话是怎么理解的 ili9320_write_pixel(OV7620_H - i, OV7620_W- j, RGB2COLOR(CCDBuffer[i][j], CCDBuffer[i][j], CCDBuffer[i][j]));
作者: 血之哀    时间: 2016-5-26 23:37
每天快乐的时光 发表于 2016-5-26 22:52
这句话是怎么理解的 ili9320_write_pixel(OV7620_H - i, OV7620_W- j, RGB2COLOR(CCDBuffer[j], CCDBuffer[ ...

这一句是用于9320液晶显示的,您用不到,这句您可以根据你的交互模式来自选定。

作者: 许贞纬    时间: 2016-5-28 09:01
血之哀 发表于 2016-5-22 22:21
当然比赛的主要目的还是比速度这个只是数据的采集处理方式,小车的速度还是和后期的逆天算法有关

逆天算法。。。哦买嘎的

作者: 许贞纬    时间: 2016-5-28 09:02
血之哀 发表于 2016-5-26 00:54
本算法适合于非硬件二值化摄像头

觉得挺好的  可惜已经硬件二值化了。。。。

作者: g847279681    时间: 2016-5-28 15:48
小同志,我看你很喜欢搞算法么,和我来搞一搞ADRC控制的PID怎么样啊?
作者: 血之哀    时间: 2016-5-28 21:41
g847279681 发表于 2016-5-28 15:48
小同志,我看你很喜欢搞算法么,和我来搞一搞ADRC控制的PID怎么样啊?

什么时候


作者: g847279681    时间: 2016-5-28 21:49
血之哀 发表于 2016-5-28 21:41
什么时候

来来来,留个qq交流

作者: g847279681    时间: 2016-5-28 21:49
我qq就是名字后面的数字
作者: 血之哀    时间: 2016-5-28 21:59
已经申请添加


作者: 张小生    时间: 2016-6-14 01:53
g847279681 发表于 2016-5-22 22:21
鹰眼路过~

花钱谁不会

作者: g847279681    时间: 2016-6-14 08:59
张小生 发表于 2016-6-14 01:53
花钱谁不会

你们都自制摄像头吗?

作者: 张小生    时间: 2016-6-14 14:59
g847279681 发表于 2016-6-14 08:59
你们都自制摄像头吗?

自制的
作者: 经典丶    时间: 2016-6-21 18:24
赞。  楼主从哪儿学到这些算法的
作者: 血之哀    时间: 2016-6-23 12:23
经典丶 发表于 2016-6-21 18:24
赞。  楼主从哪儿学到这些算法的

因为有需求所以就上度娘找资料,看懂资料后把思想写成代码

作者: JY脚印    时间: 2016-6-24 20:40
大神……
佩服…………
作者: JY脚印    时间: 2016-7-15 09:56
学习!!
作者: Billy98    时间: 2018-4-18 20:51
楼主的罗伯特算子不会对噪声特别敏感吗?
作者: dxa572862121    时间: 2018-4-18 23:17
本帖最后由 dxa572862121 于 2018-4-18 23:19 编辑
血之哀 发表于 2016-5-22 19:22
实现代码如下
static void UserApp(void)
{

目测你这个程序单片机会出错,内存出错,数组下标溢出,不过你这个方法以前还没有见过呢,名字没听过。。。

作者: sunhaohua    时间: 2019-6-30 13:28
学习学习
作者: 马俊123    时间: 2020-2-12 19:15
大佬用过伽马变换吗?
作者: 12300    时间: 2020-4-4 21:57
厉害,受教了,谢谢。




欢迎光临 亿加合和智能车制作 (http://www.znczz.com/) Powered by Discuz! X3.2