向小俊同志学习,发一个基于Mean Shift的运动物体跟踪
93°2010/06/18软件综合 IP:广东
当然没有小俊同志高深 。。。 = =

Mean Shift,业内人士称为Mean Sh!t,比较慢,剧烈运动的物体跟踪效果较差 好像是废话 = =

PDF截图两张 敏感部位

viewer1.png   

viewer.png

“敏感部位”代码

[size=3]int MeanShift::CalcHisSp(unsigned char* frame, float* histogram){
    int pxValue = 0;

    for(int i = 0 ; i < HISLENGTH; i++)
        histogram[i] = 0;

        for(int j = max(0,cY - trackWinHeight / 2);j < min(cY + trackWinHeight / 2,imgH - 1); j ++){
            for(int i = max(0,cX - TrackwWidth/ 2); i < min(cX + TrackwWidth/ 2,imgW - 1);i ++){
                pixel r = frame[j * imgW * 3 + i * 3] / 16;
                pixel g = frame[j * imgW * 3 + i * 3 + 1] / 16;
                pixel b = frame[j * imgW * 3 + i * 3 + 2] / 16;

                histogram[256 * (int)r + 16 * (int)g + (int)b] += 1;
                pxValue ++;

            }

        }

        for(int i = 0; i < HISLENGTH; i ++)
            histogram[i] /= pxValue;
    else
    {
        return 0;
    }
    return pxValue;
}


void MeanShift::MSPSp(unsigned char * frame){
    float weights[HISLENGTH];

    float newX = 0.0;
    float newY = 0.0;

    for (int i=0;i<HISLENGTH;i++)
    {
        if (currHistogram[i] >0.0 )
            weights[i] = (float)tempHistogram[i]/(float)currHistogram[i];

        else
            weights[i] = 0;
    }

    float sumOfWeights = 0.0;

        for(int j = max(0,cY - trackWinHeight / 2);j < min(cY + trackWinHeight / 2,imgH - 1); j ++){
            for(int i = max(0,cX - TrackwWidth/ 2); i < min(cX + TrackwWidth/ 2,imgW - 1);i ++){
            pixel r = frame[j * imgW * 3 + i * 3] / 16;
            pixel g = frame[j * imgW * 3 + i * 3 + 1] / 16;
            pixel b = frame[j * imgW * 3 + i * 3 + 2] / 16;

            int ptr = (int)(256 * (int)r + 16 * (int)g + (int)b);

            newX += (weights[ptr] * (float)i);
            newY += (weights[ptr] * (float)j);

            sumOfWeights += weights[ptr];


        }

    }
    if(sumOfWeights != 0){
        cX = int((newX/sumOfWeights) + 0.5);
        cY = int((newY/sumOfWeights) + 0.5);
    }
    return;

}


void MeanShift::MSTP(unsigned char*  frame,int frameNumber)
{
    if(frameNumber == 0){

        CalcHisSp(frame ,this->tempHistogram);
    }
    else
    {
        int stopThreshold = 10;
        int iteratorCoumt = 0;
        while(iteratorCoumt < stopThreshold){

            CalcHisSp(frame ,this->currHistogram);
            MSPSp(frame);

            iteratorCoumt++;
        }
        
    }
}
[/size]

misuzu什么的最喜欢了

11.jpg


attachment icon YDD_CVPR_05.pdf 571.13KB PDF 66次下载 预览
+794  科创币    phpskycn    2010/06/18 &nbsp;
+800  科创币    小俊    2010/06/18 厉害厉害!佩服佩服!
来自:计算机科学 / 软件综合
15
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
93° 作者
14年8个月前 IP:未同步
225751
XXXXXXXXXXXXXXXXXXXXXXXX/t/24617

用的就是Mean Sh!t,加上目标检测算法。。。啥算法来着 忘了 = =
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
phpskycn
14年8个月前 IP:未同步
225753
附件丢失导致理解不能
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
startwood
14年8个月前 IP:未同步
225754
很遗憾PDF是英文的……
话说今天贴数居然能破60
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
我说要有光
14年8个月前 IP:未同步
225851
仔细看了遍pdf  似乎一知半解 又似乎什么都没懂。。。

大概还是后者的概率大些吧 =.=
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ltl
14年8个月前 IP:未同步
225886
代码不大美……
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°作者
14年8个月前 IP:未同步
225898
引用第5楼ltl于2010-06-19 10:26发表的  :
代码不大美……

敢吐点有意义的槽么= =
晒下限自重
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
csakura
14年8个月前 IP:未同步
228511
IEEE上DOWN的论文?那上面的论文不是一般的贵~~不过非常值的。。含金量非常高。。
CODEPROJECT上也有对象跟踪的文章。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
lovehongkong
14年8个月前 IP:未同步
231598
鹰文不好
怎么IEEE那玩意上下载论文要钱么?他们发表论文的时候不是发到期刊上的么?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
startwood
14年8个月前 IP:未同步
231878
引用第8楼lovehongkong于2010-07-04 13:42发表的  :
鹰文不好
怎么IEEE那玩意上下载论文要钱么?他们发表论文的时候不是发到期刊上的么?

期刊也是要钱的。其实有某些帐号就free了,就是不要写个程序自动狂下就行了。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
joyeep
14年8个月前 IP:未同步
231947
算法的代码通常是比较晦涩的,看不舒服很正常

非常鼓励发表算法的文章,特别是趣味算法。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
startwood
14年8个月前 IP:未同步
232164
我记得用这个在E6300配2GB双通道内存的机器上还不能做到实时。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
t-600
14年3个月前 IP:未同步
265419
在下也想學習一下93大大有什麼資料可以讓我們學習一下?
+1
科创币
jrcsh
2012-04-25
喵。。。。。。。。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
drc
12年10个月前 IP:未同步
390464
努力学,希望早点弄明白
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
fzbyron
10年3个月前 IP:福建
727301
努力学,希望早点弄明白
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
93°
学者 笔友
文章
651
回复
6032
学术分
30
2007/04/10注册,7年0个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}