三维高斯模型 opencv实现
- OnProbabilityModel()
- {
- int i;
- for(int x=0;x<workImg->height;x++)
- {
- for(int y=0;y<workImg->width;y++)
- {
- //double cur[3];
- CvMat* cur=cvCreateMat(3,1,CV_32F);
- for(i=0;i<3;i++){
- double tt=((uchar*)(workImg->imageData+x*workImg->widthStep))[y*3+i];
- cvmSet(cur,i,0,tt);
- }
- CvMat dst=cvRGB2YCbCr(cur);
- if(CalProbability(WHITE,&dst)<0.1&&CalProbability(YELLOW,&dst)<0.1)
- for (i=0;i<3;i++)
- ((uchar*)(workImg->imageData+x*workImg->widthStep))[y*3+i]=0;
- }
- }
- Invalidate();
- }
- double CalProbability(int classid,CvMat* cur)
- {
- /************************************************************************/
- /* function:
- 一个像素点cur[3]={r,g,b}; 它属于classid色类的概率
- */
- /************************************************************************/
- double temp,t1;
- CvMat inv_w,inv_y;
- cvInitMatHeader(&inv_w,3,3,CV_32F,Inv_white);
- cvInitMatHeader(&inv_y,3,3,CV_32F,Inv_yellow);
- CvMat* tmp=cvCreateMat(1,3,CV_32F);
- CvMat* tmp1=cvCreateMat(1,3,CV_32F);
- CvMat* res=cvCreateMat(1,1,CV_32F);
- //double tmp[3][3],tmp1[3][3];
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- temp=1/pow(2*PI,3/2)/sqrt(norm[classid]);
- //cvmGetMat()
- for (i=0;i<3;i++) {
- double x=cvmGet(cur,i,0);
- x-=mean_ycbcr[classid][i];
- if(x<0)
- x=0;
- cvmSet(cur,i,0,x);
- }
- double c1=cvmGet(cur,0,0);
- double c2=cvmGet(cur,1,0);
- double c3=cvmGet(cur,2,0);
- cvTranspose(cur,tmp);//转置
- if(classid==WHITE)
- cvmMul(tmp,&inv_w,tmp1);
- else if(classid==YELLOW)
- cvmMul(tmp,&inv_y,tmp1);
- cvmMul(tmp1,cur,res);
- //t1=cvNorm(tmp,0,CV_L1,0);
- t1=cvmGet(res,0,0);
- t1*=(-0.5);
- temp*=pow(Ezhishu,t1);
- return temp;
- }
from: http://blog.csdn.net/abcjennifer/article/details/7392373
三维高斯模型 opencv实现的更多相关文章
- Opencv混合高斯模型前景分离
#include "stdio.h" #include "string.h" #include "iostream" #include &q ...
- 混合高斯模型:opencv中MOG2的代码结构梳理
/* 头文件:OurGaussmix2.h */ #include "opencv2/core/core.hpp" #include <list> #include&q ...
- OpenCV混合高斯模型函数注释说明
OpenCV混合高斯模型函数注释说明 一.cvaux.h #define CV_BGFG_MOG_MAX_NGAUSSIANS 500 //高斯背景检测算法的默认参数设置 #define CV_BGF ...
- [zz] 混合高斯模型 Gaussian Mixture Model
聚类(1)——混合高斯模型 Gaussian Mixture Model http://blog.csdn.net/jwh_bupt/article/details/7663885 聚类系列: 聚类( ...
- 运动检测(前景检测)之(二)混合高斯模型GMM
运动检测(前景检测)之(二)混合高斯模型GMM zouxy09@qq.com http://blog.csdn.net/zouxy09 因为监控发展的需求,目前前景检测的研究还是很多的,也出现了很多新 ...
- [转]运动检测(前景检测)之(二)混合高斯模型GMM
转自:http://blog.csdn.net/zouxy09/article/details/9622401 因为监控发展的需求,目前前景检测的研究还是很多的,也出现了很多新的方法和思路.个人了解的 ...
- PRML读书会第九章 Mixture Models and EM(Kmeans,混合高斯模型,Expectation Maximization)
主讲人 网络上的尼采 (新浪微博: @Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:10:56 今天的主要内容有k-means.混合高斯模型. EM算法.对于k-me ...
- 混合高斯模型(GMM)推导及实现
作者:桂. 时间:2017-03-20 06:20:54 链接:http://www.cnblogs.com/xingshansi/p/6584555.html 声明:欢迎被转载,不过记得注明出处哦 ...
- 混合高斯模型(Mixtures of Gaussians)和EM算法
这篇讨论使用期望最大化算法(Expectation-Maximization)来进行密度估计(density estimation). 与k-means一样,给定的训练样本是,我们将隐含类别标签用表示 ...
随机推荐
- CodeForces 670D1 暴力或二分
今天,开博客,,,激动,第一次啊 嗯,,先来发水题纪念一下 D1. Magic Powder - 1 This problem is given in two versions that diff ...
- springmvc项目中java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 严重: Error co ...
- 纪念逝去的岁月——C/C++字符串旋转
几年前,我还不会写这个 例如: 1.向右→旋转5个字符 输入:HelloWorld 输出:WorldHello 2.向右→旋转3个字符 输入:HelloWorld 输出:rldHelloWo 代码 # ...
- JQuery基本方法介绍和使用
1.属性 $("p").addClass(css中定义的样式类型); 给某个元素添加样式 常用于表格鼠标移动效果 $(document).ready(function(){ //& ...
- thinkphp 的create()非法数据解决办法
是因为create()方法默认是使用post传值的,把from表单的传值方法改成post就行了,默认是get.
- NGUI之Slider,最简单的方法做进度条。
既然标题是最简单的,那么很多东西就不需要我们自己做了,使用的是NGUI的示例,只针对初学者,接下来让我们来做一个最简单游戏设置里的声音控制. 1.导入NGUI: 2.找到NGUI的Menu示例Demo ...
- 判断两个IP是否属于同一子网
描述 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据.子网掩码与IP地址结构相同,是32位二进制数,其中网络号部分全为“1”和主机号部分全为“0”.利用子网掩码可以判断两台主机是否 ...
- Java FTPClient实现文件上传下载
在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件 ...
- find a multiple
Description The input contains N natural (i.e. positive integer) numbers ( N <= 10000 ). Each of ...
- 创建Struct2的web应用(一)
1.上http://struts.apache.org/ 下载Struct2 2.解压缩,将lib文件夹内的部分JAR复制到java web应用的WEB-INF/lib目录下.所需JAR: commo ...