智能车制作

 找回密码
 注册

扫一扫,访问微社区

楼主: 斯特凡
打印 上一主题 下一主题

关于CCD动态阈值的确定和斜率的计算,本人开源一些资料。

[复制链接]

0

主题

24

帖子

0

精华

注册会员

Rank: 2

积分
59
QQ
威望
42
贡献
9
兑换币
17
注册时间
2016-10-2
在线时间
4 小时
毕业学校
黑龙江科技大学
41#
发表于 2016-10-3 13:40:01 | 只看该作者
是否会对基督教  
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
24
威望
24
贡献
0
兑换币
3
注册时间
2016-10-8
在线时间
0 小时
毕业学校
北京科技大学
42#
发表于 2016-10-8 11:03:43 | 只看该作者
赞一个
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

高级会员

Rank: 4

积分
519
威望
276
贡献
151
兑换币
134
注册时间
2016-10-14
在线时间
46 小时
毕业学校
北京理工大学珠海学院
43#
发表于 2016-10-15 14:21:14 | 只看该作者
谢谢!!!!
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
28
威望
27
贡献
1
兑换币
3
注册时间
2016-11-4
在线时间
0 小时
毕业学校
木毕业
44#
发表于 2016-11-4 20:53:21 | 只看该作者
很迷,这下载了有什么用?
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
132
威望
64
贡献
42
兑换币
41
注册时间
2017-7-2
在线时间
13 小时
45#
发表于 2017-7-20 14:45:21 | 只看该作者
舅扶你到  2017
回复 支持 反对

使用道具 举报

3

主题

38

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1416
QQ
威望
1049
贡献
297
兑换币
128
注册时间
2015-12-2
在线时间
35 小时
46#
发表于 2017-7-22 11:28:39 | 只看该作者
本帖最后由 wuwenfu5 于 2017-7-22 11:35 编辑
  1. __ramfunc uint8 zhifangtu_yuzhi(uint8 *ImageData_Hang)
  2. {
  3.     static uint8 zhifang_yuzhi = 100;
  4.    
  5.     uint8 freq[13]={0};//255/20=12.75
  6.     uint8 *freqp = freq;
  7.    
  8.     for (uint8 i = 0;i < 186;i ++) //统计一行数据的值 直方图
  9.         (*(freqp+ImageData_Hang[i]/20)) ++;
  10.    
  11.    
  12.     uint8 FreqDot_min = 6;  
  13.     uint8 White_Max_num = 0,Black_Max_num = 0;
  14.    
  15.     uint8 Freq_max = 0;
  16.     uint8 count_temp = zhifang_yuzhi/20;
  17.     for (uint8 i = 12;i > count_temp;i --)//使用上次预值做分界线
  18.     {
  19.         if ( *(freqp+i) > FreqDot_min)//至少大于 FreqDot_min 个点才有效
  20.         {
  21.             if ( *(freqp+i) > Freq_max)
  22.             {
  23.                 Freq_max = *(freqp+i);
  24.                 White_Max_num = i;//找出 白色 峰值
  25.             }
  26.         }
  27.     }
  28.    
  29.     count_temp = zhifang_yuzhi/20;
  30.     Freq_max = 0;
  31.     for (uint8 i = 0;i < count_temp;i ++)//使用上次预值做分界线
  32.     {
  33.         if ( *(freqp+i) > FreqDot_min)//至少大于 FreqDot_min 个点才有效
  34.         {
  35.             if ( *(freqp+i) > Freq_max)
  36.             {
  37.                 Freq_max = *(freqp+i);
  38.                 Black_Max_num = i;//找出 黑色 峰值
  39.             }
  40.         }
  41.     }
  42.    
  43. //    if (Distance_cm < 20)
  44. //    {
  45. //        Site_t site={0,16};   
  46. //        Size_t size={186,60};              //显示区域大小
  47. //
  48. //        LCD_wave(site,size,ImageData_Hang,128,255,BLUE,WHITE);        //波形显示,不带背景颜色
  49. //                           //freqp
  50. //        site.x = 60;site.y =112;
  51. //        LCD_num_BC (site,zhifang_yuzhi,3,GREEN,RED);  //显示数字 Distance
  52. //        
  53. //        
  54. //        Size_t zhixian_size    = {128,1};
  55. //        Site_t zhixian_site    = {0,(int)(76.5 - zhifang_yuzhi * 60 /255.0)};
  56. //        LCD_rectangle      (zhixian_site, zhixian_size,GREEN);                 //画矩形
  57. //    }

  58.     zhifang_yuzhi = 10*(White_Max_num + Black_Max_num);
  59.    
  60.   
  61.         
  62.     return zhifang_yuzhi;
  63. }
复制代码

借贴开源。。。
仅提供一种思想,效果大家自己试试咯

大概是从上一次预值为分界线向左右找黑白峰值,如果不使用这个分界,直接定位黑白峰值的话我试过效果不够理想(水平有限,写不出来),大家可以参考改进一下。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 02:18 , Processed in 0.117256 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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