智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 27868|回复: 73
打印 上一主题 下一主题

大津动态阈值适用于线性CCD吗?

  [复制链接]

37

主题

358

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3787
威望
1857
贡献
918
兑换币
704
注册时间
2012-3-12
在线时间
506 小时
跳转到指定楼层
1#
发表于 2013-4-6 15:05:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天又试了一下大津法~~但是计算出的阈值还是很跳跃~~
以下是我的代码~我感觉没什么问题啊,怎么在线性CCD上效果不行呢。。。。还有一组摄像头的就是用的大津法,效果很好啊~~郁闷了~~这个问题困扰已久啊,大家来讨论讨论啊

37

主题

358

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3787
威望
1857
贡献
918
兑换币
704
注册时间
2012-3-12
在线时间
506 小时
2#
 楼主| 发表于 2013-4-6 15:07:56 | 只看该作者
/*大津法二值化,浮动阈值
函数入口:CCD采集数据数组首地址
函数出口:二值化的浮动阈值*/

uchar nList[256]={0};
uchar otsu(uchar *pSrc)
{
    uchar j=0,tr=0,num=0,cnt=0;
    uint i=0;
    int avfor=0,avback=0;
    uint cnts=0;
    u32 total=0,total_low=0,total_high=0,g=0,max=0;
    //清空直方图
    for(i=0;i<256;i++)
    {
        nList=0;
    }
     //计算直方图
        for(j=0;j<128;j++)
        {
            num=*(pSrc+j);           //获取灰度值
           //nList[num]++;            //直方图统计图像所有像素点
            nList[num]+=1;
            total+=num;               //total计算图像的灰度值总和
        }
    for(i=0;i<256;i++)
    {
        cnt=nList;                    //当前灰度值的计数数量
        if(cnt==0)   continue;
        total_low+=cnt*i;          计算灰度值从0到当前值的像素点灰度值的总和
        cnts+=cnt;                  //计算灰度值从0到当前值的像素点数目的总和
        if(cnts==128)
        {
            break;                  //统计完所有像素点,之后的灰度值已经没有任何像素点符合,计算完毕,退出
        }
        total_high=total-total_low;          //背景灰度=灰度总和-前景灰度(还没有归一化)
        avfor=(int)(total_low/cnts);             //前景归一化
        avback=(int)(total_high/(128-cnts));          //背景归一化  
        g=(avback-avfor)*(avback-avfor)*(cnts*128-cnts*cnts)/(128*128)    ;        //计算方差     
        if(max<g)
        {
            max=g;
            tr=i;            //方差最大的灰度值即为大津阈值
        }
       // if(i==80)
         // i=80;
    }  
    return tr;
}
回复 支持 反对

使用道具 举报

114

主题

857

帖子

0

精华

跨届大侠

不想吃天鹅肉的癞蛤蟆不是好癞蛤蟆~!

Rank: 10Rank: 10Rank: 10

积分
8662

活跃会员奖章优秀会员奖章在线王奖章论坛骨干奖章论坛元老奖章资源大师奖章

威望
3956
贡献
2014
兑换币
1429
注册时间
2012-3-4
在线时间
1346 小时
3#
发表于 2013-4-6 20:49:56 | 只看该作者
本帖最后由 zyj 于 2013-4-6 21:04 编辑

收~大津好像是最大类间方差么。是不是同一个东西啊
回复 支持 反对

使用道具 举报

37

主题

358

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3787
威望
1857
贡献
918
兑换币
704
注册时间
2012-3-12
在线时间
506 小时
4#
 楼主| 发表于 2013-4-6 21:07:20 | 只看该作者
zyj 发表于 2013-4-6 20:49
收~大津好像是最大类间方差么。是不是同一个东西啊

嗯~是同一个东西,这个程序是对的,只是有点小小的错误,下午调了下,可以用
回复 支持 反对

使用道具 举报

114

主题

857

帖子

0

精华

跨届大侠

不想吃天鹅肉的癞蛤蟆不是好癞蛤蟆~!

Rank: 10Rank: 10Rank: 10

积分
8662

活跃会员奖章优秀会员奖章在线王奖章论坛骨干奖章论坛元老奖章资源大师奖章

威望
3956
贡献
2014
兑换币
1429
注册时间
2012-3-4
在线时间
1346 小时
5#
发表于 2013-4-6 21:15:30 | 只看该作者
本帖最后由 zyj 于 2013-4-6 21:17 编辑
bobo_12300 发表于 2013-4-6 21:07
嗯~是同一个东西,这个程序是对的,只是有点小小的错误,下午调了下,可以用

什么错误啊==效果怎样,多少时间
回复 支持 反对

使用道具 举报

7

主题

354

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3248

优秀会员奖章活跃会员奖章在线王奖章

威望
1520
贡献
910
兑换币
666
注册时间
2012-4-28
在线时间
409 小时
6#
发表于 2013-4-6 22:04:31 | 只看该作者
我们试了一下原始的大津法时间太长,中断容易溢出,后来改了一下有效果但不明显,白天可以跑下来了,后来换了场地不分白天晚上光照强度都均匀不变,就改成静态阈值了
回复 支持 反对

使用道具 举报

37

主题

358

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3787
威望
1857
贡献
918
兑换币
704
注册时间
2012-3-12
在线时间
506 小时
7#
 楼主| 发表于 2013-4-6 22:53:19 | 只看该作者
十七岁不哭 发表于 2013-4-6 22:04
我们试了一下原始的大津法时间太长,中断容易溢出,后来改了一下有效果但不明显,白天可以跑下来了,后来换 ...

不要用浮点型,时间不长,不到1ms
回复 支持 反对

使用道具 举报

37

主题

358

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3787
威望
1857
贡献
918
兑换币
704
注册时间
2012-3-12
在线时间
506 小时
8#
 楼主| 发表于 2013-4-7 10:32:09 | 只看该作者
zyj 发表于 2013-4-6 21:15
什么错误啊==效果怎样,多少时间

一个变量的类型要改一下,时间之前测的是6、700us的样子好像,效果还行啊
回复 支持 反对

使用道具 举报

114

主题

857

帖子

0

精华

跨届大侠

不想吃天鹅肉的癞蛤蟆不是好癞蛤蟆~!

Rank: 10Rank: 10Rank: 10

积分
8662

活跃会员奖章优秀会员奖章在线王奖章论坛骨干奖章论坛元老奖章资源大师奖章

威望
3956
贡献
2014
兑换币
1429
注册时间
2012-3-4
在线时间
1346 小时
9#
发表于 2013-4-7 11:48:59 | 只看该作者
bobo_12300 发表于 2013-4-7 10:32
一个变量的类型要改一下,时间之前测的是6、700us的样子好像,效果还行啊

时间没加串口发送的吧
回复 支持 反对

使用道具 举报

37

主题

358

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3787
威望
1857
贡献
918
兑换币
704
注册时间
2012-3-12
在线时间
506 小时
10#
 楼主| 发表于 2013-4-7 12:45:28 | 只看该作者
zyj 发表于 2013-4-7 11:48
时间没加串口发送的吧

没加~串口发送放在主函数的循环中了~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 05:56 , Processed in 0.086665 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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