亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gmm.cpp

?? 動態場景中運動目標檢測提取與跟蹤 對新手很有用
?? CPP
字號:
#include "stdafx.h"
#include "GMM.h"
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
#include "iplImageProcess.h"
#include <fstream.h>
#include <math.h>


GMM::GMM(CvCapture* pCapture)
{
	ASSERT(pCapture!=NULL);
	pImage=NULL;
	pResultImage=NULL;
	gmm=NULL;
	originalImgMat=NULL;
	resultImgMat=NULL;

    this->pCapture=pCapture;
    pImage = cvQueryFrame(pCapture);
	height=pImage->height;
	width=pImage->width;
	gmm=new GMS[height*width];
    originalImgMat=new char[height*width*3];
    resultImgMat=new char[height*width*3];
    pResultImage=cvCreateImage(cvSize(width,height), IPL_DEPTH_8U,3);
	pResultImage->origin=1;
	
	for(int y=0;y<height;y++)
		for(int x=0;x<width;x++)
		{
			iplGetPixelColor(pImage,x,y,xt);//得到當前像素值并放于xt中
			//xt[0]=iplGetPixelRed(pImage,x,y);
			//xt[1]=iplGetPixelGreen(pImage,x,y);
			//xt[2]=iplGetPixelBlue(pImage,x,y);

			for(int k=0;k<K;k++)
			{
				gmm[y*width+x].gm[k].u[0]=xt[0];
				gmm[y*width+x].gm[k].u[1]=xt[1];
				gmm[y*width+x].gm[k].u[2]=xt[2];
			}
		}
		
}
GMM::~GMM()
{
	if(pImage!=NULL)
	{
		cvReleaseImage(&pImage);
	}
	if(pResultImage!=NULL)
	{
		cvReleaseImage(&pResultImage);
	}
	if(gmm!=NULL)
	{
		delete [] gmm;
	}
	if(originalImgMat!=NULL)
	{
		delete [] originalImgMat;
	}
	if(resultImgMat!=NULL)
	{
		delete [] resultImgMat;
	}
	

}

int GMM::findMatch(int* xt,GMS& g)
{
	ASSERT(xt!=NULL && g.gm!=NULL);
	for(int i=0;i<K;i++)
	{
		if(fabs((double)xt[0]-g.gm[i].u[0])<2.5*sqrt(g.gm[i].gama[0]) &&
			fabs((double)xt[1]-g.gm[i].u[1])<2.5*sqrt(g.gm[i].gama[1]) &&
			fabs((double)xt[2]-g.gm[i].u[2])<2.5*sqrt(g.gm[i].gama[2]))
		{
			return i;
		}
	}
	return K+1;
}

void GMM::reorderGMM(GMS& g)
{
	ASSERT(g.gm!=NULL);
	GM g_max;
	int loc_max;
	for(int i=0;i<K;i++)
	{
		g_max=g.gm[i];
		loc_max=i;
		for(int j=i;j<K;j++)
		{
			if(g_max.w<g.gm[j].w)
			{
				g_max=g.gm[j];
				loc_max=j;
			}
		}
		g.gm[loc_max]=g.gm[i];
		g.gm[i]=g_max;
		
	}
		
}


/*
 *用當前像素創建一個新的GM模型
*/
GM GMM:: createNewGM(int* xt)
{
	ASSERT(xt!=NULL);
	GM g(xt);
	return g;

}
void GMM::processImage()
{
	ASSERT(pImage);
	cvNamedWindow("pImage", CV_WINDOW_AUTOSIZE);  
	cvNamedWindow("pResultImage",CV_WINDOW_AUTOSIZE);
    cvMoveWindow("pImage", 120, 200);  
    cvMoveWindow("pResultImage",130+width, 200);

	int location=0;
    //ofstream output("order.txt",ios::ate);
	

	while(pImage = cvQueryFrame(pCapture))
	{
		
		for(int x=0;x<width;x++)
			for(int y=0;y<height;y++)
			{
				iplGetPixelColor(pImage,x,y,xt);//得到一個像素的三個分量

				//output<<xt[0]<<","<<xt[1]<<","<<xt[2]<<endl;

				if((location=findMatch(xt,gmm[y*width+x]))<K)
				{
					for(int i=0;i<location;i++)
					{
						gmm[y*width+x].gm[i].updateData();
					}
					gmm[y*width+x].gm[location].updateData(xt);
					gmm[y*width+x].gm[location].newGMM=true;
					for(int j=location+1;j<K;j++)
					{
						gmm[y*width+x].gm[j].updateData();
					}
				}
				else //no match found
				{
					for(int i=0;i<K-1;i++)
					{
						gmm[y*width+x].gm[i].updateData();
					}
					gmm[y*width+x].gm[K-1]=createNewGM(xt);

					//output<<gmm[y*width+x].gm[K-1].w<<endl;	
					
				}
				 //reorder the GMM
 		    reorderGMM(gmm[y*width+x]);

			

 		    for(int i=0;i<K;i++)
 		    {
 		    	if(gmm[y*width+x].gm[i].newGMM==true)
 		    	{
 		    		location=i;//location 的新位置
 		    		gmm[y*width+x].gm[i].newGMM=false;
 		    		break;
 		    	}
 		    }
 		    
 		    int B=0;
 		   double w_tmp=0;
 		   double w_all=0;
 		  for(i=0;i<K;i++)
 		  {
 		   	w_all+=gmm[y*width+x].gm[i].w;
 		  }
 		  for( i=0;i<K;i++)
 		  {
 		  	gmm[y*width+x].gm[i].w/=w_all;
 		  	//gmm[y][x][i].get_ratio;
 		   	
 		  }
 		    for(i=0;i<K;i++)
 		    {
 		    	if(w_tmp<T)
 		    	{	
 		    		w_tmp+=gmm[y*width+x].gm[i].w;
 		    	}
 		    	else
 		    	{
 		    		B=i;
 		    		break;
 		    	}
 		    }
 		    if(location<=B)
 		    {
 		    	iplSetPixelColor(pResultImage,x,y,0xff000000);
 		    }
 		    else
			{
 		    	double bgPixel[]={0,0,0};//stand for a background pixel
	            double gamaBgPixel[]={0,0,0};//stand for a background pixel gama.
	        
 		    	////////////////////////////////////shadow detection in RGB color space
 		    	for(int m=0;m<K;m++)
 		    	{
					bgPixel[0]+=gmm[y*width+x].gm[m].w*gmm[y*width+x].gm[m].u[0];
					bgPixel[1]+=gmm[y*width+x].gm[m].w*gmm[y*width+x].gm[m].u[1];
					bgPixel[2]+=gmm[y*width+x].gm[m].w*gmm[y*width+x].gm[m].u[2];

					gamaBgPixel[0]+=gmm[y*width+x].gm[m].w*sqrt(gmm[y+width+x].gm[m].gama[0]);
					gamaBgPixel[1]+=gmm[y*width+x].gm[m].w*sqrt(gmm[y+width+x].gm[m].gama[1]);
					gamaBgPixel[2]+=gmm[y*width+x].gm[m].w*sqrt(gmm[y+width+x].gm[m].gama[2]);

 		    		//bgPixel=g.vectorAdd(bgPixel,g.getDoubleVector(g.vectorMulNum(gmm[y][x][m].w,gmm[y][x][m].u)));//calculate the background value	
 		    	    //gamaBgPixel=g.vectorAdd(gamaBgPixel,g.vectorMulNum(gmm[y][x][m].w,g.vectorSqrt(gmm[y][x][m].gama)));
 		    	}
 		    	
 		    	if(fabs(xt[0]-bgPixel[0])/(double)(bgPixel[0])<ALPHA_RGB && 
 		    		fabs(xt[1]-bgPixel[1])/(double)(bgPixel[1])<ALPHA_RGB &&
 		    	    fabs(xt[2]-bgPixel[2])/(double)(bgPixel[2])<ALPHA_RGB)
 		    	{
 		    		iplSetPixelColor(pResultImage,x,y,0xff000000);
				}
 		    	else
 		    	{
 		    		iplSetPixelColor(pResultImage,x,y,0xffffffff);
 		    	}
			}
		}

	
		/*for(int num=0;num<K;num++)
		{
			output<<gmm[100*width+100].gm[num].w<<",";	
		}
 		output<<endl;*/
		//output.close();	


		cvShowImage("pImage",pImage);	  
		cvShowImage("pResultImage",pResultImage);
		//如果有按鍵事件,則跳出循環
		//此等待也為cvShowImage函數提供時間完成顯示
		//等待時間可以根據CPU速度調整
		if(cvWaitKey(1) >= 0)
		{
			pImage=0;
			break;
		}
	}
	
    cvReleaseImage(&pImage);  
	pImage=NULL;
	cvReleaseImage(&pResultImage);  
	pResultImage=NULL;
	cvDestroyWindow("pImage");  
	cvDestroyWindow("pResultImage");
	//output.close();

}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清视频在线| 国产精品麻豆久久久| 日韩免费电影网站| 中文字幕精品一区| 麻豆视频观看网址久久| a4yy欧美一区二区三区| 欧美哺乳videos| 亚洲成人三级小说| 色婷婷激情久久| 中文字幕欧美激情一区| 日日夜夜免费精品| 欧美亚洲日本国产| 中文字幕一区二区在线观看| 久久99精品国产91久久来源| 91福利资源站| 国产精品不卡在线| 成人午夜在线视频| 亚洲精品一区二区精华| 日本不卡一区二区| 欧美午夜寂寞影院| 亚洲综合丝袜美腿| 色婷婷av一区| 一区二区三国产精华液| 99精品欧美一区二区蜜桃免费| 久久综合999| 国内外成人在线| 欧美精品一区二区三区视频 | 91色porny| 中文字幕国产精品一区二区| 久久国产精品99久久久久久老狼| 欧美日韩成人一区| 首页亚洲欧美制服丝腿| 欧美日韩视频在线一区二区| 亚洲图片有声小说| 欧美人与z0zoxxxx视频| 偷拍与自拍一区| 欧美一区二区三区白人| 美女高潮久久久| 久久亚洲影视婷婷| 成人黄色a**站在线观看| 国产精品美女久久久久aⅴ| 成人视屏免费看| 一区二区高清在线| 欧美日韩国产小视频在线观看| 亚洲电影你懂得| 日韩欧美高清在线| 国产成人午夜高潮毛片| 国产精品白丝在线| 欧美丝袜自拍制服另类| 日韩av中文字幕一区二区| 欧美sm美女调教| 风间由美中文字幕在线看视频国产欧美| 国产亚洲一二三区| 色婷婷综合久久| 日本不卡123| 国产女人aaa级久久久级 | 91麻豆自制传媒国产之光| 亚洲一区二区欧美激情| 日韩欧美国产成人一区二区| 丰满亚洲少妇av| 亚洲一区二区精品视频| 日韩欧美一区二区三区在线| 国产成人啪午夜精品网站男同| 国产精品久久久久三级| 欧美日韩电影一区| 国产经典欧美精品| 亚洲黄色小视频| 精品人伦一区二区色婷婷| 不卡视频一二三| 日韩电影免费在线看| 国产精品美女久久久久久久久久久| 91国产丝袜在线播放| 激情欧美一区二区三区在线观看| 国产精品久久久久久久久搜平片| 欧美美女一区二区| 99视频热这里只有精品免费| 日韩av不卡一区二区| 中文字幕在线观看不卡| 精品久久人人做人人爽| 91国模大尺度私拍在线视频| 国产一区二区三区精品视频| 亚洲综合在线第一页| 久久久国产精品午夜一区ai换脸| 欧美色手机在线观看| 成人福利视频在线| 精品一区二区三区在线观看| 亚洲在线观看免费视频| 中文字幕在线不卡国产视频| 欧美tk丨vk视频| 欧美老女人第四色| 欧美羞羞免费网站| 不卡高清视频专区| 国产精品91xxx| 美腿丝袜亚洲综合| 午夜不卡在线视频| 一二三四社区欧美黄| 国产精品欧美一级免费| 2024国产精品| 欧美一区二区视频免费观看| 色天天综合色天天久久| hitomi一区二区三区精品| 国产精品123| 国模套图日韩精品一区二区| 日本三级亚洲精品| 天堂va蜜桃一区二区三区漫画版| 亚洲六月丁香色婷婷综合久久 | 在线不卡免费av| 91亚洲精华国产精华精华液| 国产不卡高清在线观看视频| 国产综合色在线视频区| 国产原创一区二区三区| 极品美女销魂一区二区三区| 麻豆国产精品官网| 久久精品国产亚洲5555| 免费在线观看视频一区| 日本色综合中文字幕| 裸体健美xxxx欧美裸体表演| 日韩电影在线免费| 久久99精品国产91久久来源| 久久电影网站中文字幕| 国产又黄又大久久| 国产精品99久久久久久似苏梦涵 | 日韩欧美的一区二区| 91精品久久久久久久91蜜桃| 欧美一区二区三区四区五区 | 午夜精品一区在线观看| 久久精品国产99国产| 麻豆一区二区三| 国产精品一区二区果冻传媒| 懂色一区二区三区免费观看| 成人精品免费网站| eeuss国产一区二区三区| 一本大道久久精品懂色aⅴ| 欧美视频精品在线| 欧美一区二区久久| 久久综合九色综合97婷婷| 国产精品视频看| 亚洲高清在线视频| 激情综合色综合久久| 国产成人免费在线视频| 色综合网色综合| 欧美区一区二区三区| 久久嫩草精品久久久久| 亚洲欧洲成人精品av97| 午夜电影一区二区三区| 国内久久婷婷综合| 91片在线免费观看| 日韩欧美一级精品久久| 国产精品麻豆99久久久久久| 亚洲国产一区二区三区青草影视| 久久99久久精品| 91麻豆国产精品久久| 日韩一二三区不卡| 中文字幕一区二区5566日韩| 天天做天天摸天天爽国产一区| 九色综合国产一区二区三区| 99久久精品久久久久久清纯| 欧美一区二区精美| 1000部国产精品成人观看| 蜜桃精品视频在线观看| 91麻豆精品秘密| 精品久久五月天| 亚洲第一在线综合网站| 国产成人av福利| 在线不卡一区二区| 亚洲日本欧美天堂| 国内精品视频一区二区三区八戒| 91激情在线视频| 欧美国产日韩a欧美在线观看| 日韩一区精品字幕| 91视频免费观看| 国产网站一区二区三区| 日本不卡的三区四区五区| 色综合久久久久综合体| 久久久久久黄色| 免费观看91视频大全| 色狠狠av一区二区三区| 国产精品久久毛片a| 久久国产精品99久久久久久老狼| 在线免费不卡电影| 国产精品久久久久婷婷二区次| 精品中文字幕一区二区小辣椒| 欧美日韩精品二区第二页| 一区二区三区四区在线| 成人免费精品视频| 国产亚洲欧美日韩俺去了| 奇米综合一区二区三区精品视频| 欧美色国产精品| 亚洲精品成a人| 99久久亚洲一区二区三区青草| 久久久久久久久久看片| 精品综合久久久久久8888| 欧美一级欧美三级在线观看| 五月天激情综合网| 欧美日韩国产一二三| 日日夜夜精品免费视频| 欧美精品99久久久**| 视频一区二区中文字幕| 欧美日韩一区在线观看| 亚洲mv在线观看|