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

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

?? ydpdview.cpp

?? 完成對運動圖像的識別和跟蹤
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
		{
			lOffset = cDib.PixelOffset(0,i,wBytesPerLine);
			*(lpData+lOffset++) =0;
			*(lpData+lOffset++) =0;
			*(lpData+lOffset++) =0;
		}
		GlobalUnlock(hDIBCurrent);
	Invalidate();
}

void CYdpdView::OnMenuYdpdThing() 
{
		cDib.ThinningDIB(hDIBCurrent);
		Invalidate();
}
//函數(shù)實現(xiàn)去除圖片中離散點的功能
void CYdpdView::OnMenuYdpdDeletescater() 
{
	LPBITMAPINFOHEADER lpbi;
	lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDIBCurrent);
	int width = lpbi->biWidth;
	int height = lpbi->biHeight;
	//令lpdata指向數(shù)據(jù)區(qū)
	LPBYTE lpData = cDib.FindDIBBits(hDIBCurrent);
	//得到圖片每行的字節(jié)個數(shù)
	WORD wBytesPerLine = cDib.BytePerLine(hDIBCurrent);
	long lOffset;
	int lenth;
	bool lab[m_HEIGHT][m_WIDTH];
    //掃描整個圖片,進行去離散操作
	for(int i=0;i<height;i++)
		for(int j=0;j<width;j++)
		{	lenth = 0;
		    //得到點在數(shù)據(jù)區(qū)中的偏移
			lOffset = cDib.PixelOffset(i,j,wBytesPerLine);
			if(*(lpData+lOffset) == 255)//象素為白色
			{  //初始化標志數(shù)組
				for(int k=0;k<m_HEIGHT;k++)
					for(int kk=0;kk<m_WIDTH;kk++)
						lab[k][kk] = false;
					//初始化連續(xù)點長度
					cDib.lenth =0;
					//判斷是否為離散點
			if(cDib.IsScaterPoint(j,i,width,height,lpData,wBytesPerLine,3,lab))
			{   //不是是離散點
				*(lpData+lOffset++) = 255;
				*(lpData+lOffset++) = 255;
				*(lpData+lOffset++) = 255;
			}
			else 
			{   //是離散點,把點設置為黑色
				*(lpData+lOffset++) = 0;
				*(lpData+lOffset++) = 0;
				*(lpData+lOffset++) = 0;
			}
			}
			else
			{  //否則設置為黑色
				*(lpData+lOffset++) = 0;
				*(lpData+lOffset++) = 0;
				*(lpData+lOffset++) = 0;
			}

		}
		GlobalUnlock(hDIBCurrent);
		Invalidate();
}




void CYdpdView::OnMenuYdpdGuiji() 
{
	Track  tk;
	
	tk.m_YDGJ.m_Guiji[tk.m_YDGJ.m_Len].x =locax;
    tk.m_YDGJ.m_Guiji[tk.m_YDGJ.m_Len].y = locay;
	tk.m_YDGJ.m_Len++;
	//tk.DoModal();
	
}
//得到物體的中心點
void CYdpdView::OnMenuYdpdCenter() 
{
	
		LPBYTE lpData;
		int height,width;
		LPBITMAPINFOHEADER lpbi;
		WORD wBytesPerLine;
		long lOffset;
		int xsum = 0,ysum=0,pointnum;
		//lpdata指向數(shù)據(jù)區(qū)
		lpData = cDib.FindDIBBits(hDIBCurrent);
		lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDIBCurrent);
		//得到圖片的長寬信息
		height = lpbi->biHeight;
		width = lpbi->biWidth;
		//得到圖片的每行的字節(jié)數(shù)
		wBytesPerLine = cDib.BytePerLine(hDIBCurrent);
		//初始化 橫坐標,縱坐標和點數(shù)的值
			xsum =0;ysum =0;pointnum =0;
			//掃描整個圖片
			for(int i = 0;i<height;i++)
				for(int j=0;j<width;j++)
				{   
					//得到點在圖片中的偏移
					lOffset = cDib.PixelOffset(i,j,wBytesPerLine);
					if(*(lpData+lOffset) !=0)//不是黑色點
					{  
						//增加橫坐標,縱坐標的值
						xsum +=j;
						ysum +=i;
						//增加點數(shù)值
						pointnum++;
					}
				}
				//得到中心點在數(shù)據(jù)區(qū)中的偏移
				lOffset = cDib.PixelOffset(ysum/pointnum,xsum/pointnum,wBytesPerLine);
				//把中心點設置為綠色
				*(lpData+lOffset++) =0;
				*(lpData+lOffset++) =255;
				*(lpData+lOffset++) =0;
				GlobalUnlock(hDIBCurrent);
				Invalidate();

}

void CYdpdView::OnMenuYcx() 
{
		FILE *fpname;
		char a[15];
		CString aa;
		fpname = fopen("filename.txt","r");
		fscanf(fpname,"%s",aa);
		if(hDIBBK1)
				GlobalFree(hDIBBK1);
				hDIBBK1 = cDib.LoadDIB(aa);
		LPBITMAPINFOHEADER lpbi;
		lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDIBBK1);
		this->m_bk_first_width = lpbi->biWidth;
		this->m_bk_first_height = lpbi->biHeight;
		GlobalUnlock(hDIBBK1);
		
		
	
		int num;
		LPBYTE lpData;
		LPBYTE lpDataS;
		int height,width;
	
		WORD wBytesPerLine;
		long lOffset;
		fscanf(fpname,"%d",&num);
		bool lab = false;
		int xsum = 0,ysum=0,pointnum;
		for(int i=0;i<num;i++)
		{
			fscanf(fpname,"%s",a);
			if(hDIBCurrent)
				GlobalFree(hDIBCurrent);
				hDIBCurrent = cDib.LoadDIB(a);
				if(!hDIBCurrent)
			{
				AfxMessageBox("Load DIB file failed");
				fclose(fpname);
				return;
			}
		lpData = cDib.FindDIBBits(hDIBCurrent);
		lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDIBCurrent);
		height = lpbi->biHeight;
		width = lpbi->biWidth;
		lpDataS = cDib.FindDIBBits(hDIBBK1);
		wBytesPerLine = cDib.BytePerLine(hDIBBK1);
		for(int i=0;i<height;i++)
			for(int j=0;j<width;j++)
			{
				int cr,cg,cb;
				lOffset = cDib.PixelOffset(i,j,wBytesPerLine);
				cr = abs(*(lpData+lOffset) - *(lpDataS+lOffset));
				cg = abs(*(lpData+lOffset+1) - *(lpDataS+lOffset+1));
				cb = abs(*(lpData+lOffset+2) - *(lpDataS+lOffset+2));
				int gray = (cb*39+cg*50+cr*11)/100;
				*(lpData+lOffset) = gray;
				*(lpData+lOffset+1) = gray;
				*(lpData+lOffset+2) = gray;

			}
			xsum =0;ysum =0;pointnum =0;
			for(i = 0;i<height;i++)
				for(int j=0;j<width;j++)
				{
					lOffset = cDib.PixelOffset(i,j,wBytesPerLine);
					if(*(lpData+lOffset) !=0)
					{
						xsum +=j;
						ysum +=i;
						pointnum++;
					}
				}
			
		this->m_center[this->m_Pointnum].x = xsum/pointnum;
		this->m_center[this->m_Pointnum].y = ysum/pointnum;
		this->m_Pointnum++;
		
						
	
		}
	Track tk;
	for(i=0;i<this->m_Pointnum;i++)
	{
		tk.m_YDGJ.m_Guiji[i].x = m_center[i].x;
		tk.m_YDGJ.m_Guiji[i].y = m_center[i].y;
	}
	tk.m_YDGJ.m_Len = this->m_Pointnum;
	tk.m_mapheight = height;
	tk.m_mapwidth = width;
	tk.DoModal();
}
//實現(xiàn)圖片特征區(qū)域的再次匹配
void CYdpdView::OnSecondPipei() 
{
		LPBITMAPINFOHEADER lpbi;
		LPBYTE lpData;
		WORD wBytesPerLine;
		int height1,width1,height2,width2;
		lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDIBBK1);
		//下面的一段代碼設定第二個特征區(qū)域的查找范圍
		//第一個特征區(qū)域的縱坐標大于原圖高度的一半
		if(lpbi->biHeight/2 < ImportantPoint.y)
		{
		    //設定考察的兩個縱坐標位置
			height2 = lpbi->biHeight/2;
			height1 = 0;
		}
		else//第一個特征區(qū)域的坐標小于等于原圖高度的一半
		{   //設定縱坐標位置
			height2 = lpbi->biHeight;
			height1 = lpbi->biHeight/2;
		}
		//如果第一個特征區(qū)域的橫坐標大于原來圖片的一半
		if(lpbi->biWidth/2 < ImportantPoint.x)
		{  //設定考察區(qū)域橫坐標的兩個值
			width1 = 0;
			width2 = lpbi->biWidth/2;
		}
		else //第一個特征區(qū)域的橫坐標小于等于原來圖片的一半
		{  //設定考察區(qū)域的橫坐標的兩個值
			width1 = lpbi->biWidth/2;
			width2 = lpbi->biWidth;
		}
		
	lpData = cDib.FindDIBBits(hDIBBK1);
	//得到每行象素的字節(jié)數(shù)
	wBytesPerLine = cDib.BytePerLine(hDIBBK1);
	int tempsum=0,sum=0;
	long lOffset;
	//在設定的區(qū)域內部查找第二個特征區(qū)域
	for(int i=height1+RADIUS;i<height2-RADIUS;i++)
		for(int j=width2+ RADIUS;j<width2-RADIUS;j++)
		{	tempsum =0;
		   //考察以RADIUS82+1為邊長的正方形區(qū)域
			for(int k1=-RADIUS;k1<=RADIUS;k1++)
				for(int k2 =-RADIUS;k2<=RADIUS;k2++)
				{   
					//得到數(shù)據(jù)偏移
					lOffset = cDib.PixelOffset(i+k1,j+k2,wBytesPerLine);
					//得到顏色值
					int color = *(lpData+lOffset);
					//增加當前tempsum的值
					tempsum +=color;
				}
				if(tempsum>sum)//當前區(qū)域特征更明顯
				{
					sum = tempsum;
					//設定區(qū)域中心點坐標
					ImportantPointSecond.x = j;
					ImportantPointSecond.y = i;
								

				}
		}
		GlobalUnlock(hDIBBK1);
   //按照新找到的特征區(qū)域,再次匹配中心點
	bool kk = cDib.MatchImportantPoint(hDIBCurrent,ImportantColorInfo,&ImportantPoint2);
	//比較圖片的相似度
	if(cDib.ComPareImg(hDIBBK1,hDIBCurrent,ImportantPoint,ImportantPoint2))
		AfxMessageBox("match successed");
	else
		AfxMessageBox("match failed");
		
	Invalidate();
}

void CYdpdView::OnMenuPengzhang() 
{
	LPBITMAPINFOHEADER lpbi;
	int height,width;
	WORD wBytesPerLine;
	LPBYTE lpData;
	long lOffset;
	lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDIBCurrent);
	height = lpbi->biHeight;
	width = lpbi->biWidth;
	lpData = cDib.FindDIBBits(hDIBCurrent);
	wBytesPerLine = cDib.BytePerLine(hDIBCurrent);


	HANDLE hNewDIB;
	
	LPBYTE lpT;

	hNewDIB = GlobalAlloc(GHND,lpbi->biSize+lpbi->biSizeImage);
	if(!hNewDIB)
		return ;
		
	lpT = cDib.FindDIBBits(hNewDIB);


	for(int i =1;i<height-1;i++)
		for(int j=1;j<width-1;j++)
		{
			lOffset = cDib.PixelOffset(i,j,wBytesPerLine);
			if(*(lpData+lOffset) == 255)
			{
				*(lpT+lOffset++) = 255;
				*(lpT+lOffset++) = 255;
				*(lpT+lOffset++) = 255;
				continue;
				
			}
			else if(*(lpData+lOffset) == 0)
			{
				lOffset = cDib.PixelOffset(i+1,j,wBytesPerLine);
				if(*(lpData+lOffset) == 255)
				{
					lOffset = cDib.PixelOffset(i,j,wBytesPerLine);
					*(lpT+lOffset++) = 255;
					*(lpT+lOffset++) = 255;
					*(lpT+lOffset++) = 255;
					continue;
				}
				lOffset = cDib.PixelOffset(i-1,j,wBytesPerLine);
				if(*(lpData+lOffset) == 255)
				{
					lOffset = cDib.PixelOffset(i,j,wBytesPerLine);
					*(lpT+lOffset++) = 255;
					*(lpT+lOffset++) = 255;
					*(lpT+lOffset++) = 255;
					continue;

				}
				lOffset = cDib.PixelOffset(i,j+1,wBytesPerLine);
				if(*(lpData+lOffset) == 255)
				{
					lOffset = cDib.PixelOffset(i,j,wBytesPerLine);
					*(lpT+lOffset++) = 255;
					*(lpT+lOffset++) = 255;
					*(lpT+lOffset++) = 255;
					continue;

				}
				lOffset = cDib.PixelOffset(i,j-1,wBytesPerLine);
				if(*(lpData+lOffset) == 255)
				{
					lOffset = cDib.PixelOffset(i,j,wBytesPerLine);
					*(lpT+lOffset++) = 255;
					*(lpT+lOffset++) = 255;
					*(lpT+lOffset++) = 255;

				}
			}
		}
		for(i = 1;i<height-1;i++)
			for(int j=1;j<width-1;j++)
			{	
				lOffset = cDib.PixelOffset(i,j,wBytesPerLine);
				*(lpData + lOffset) = *(lpT+lOffset);
				*(lpData + lOffset+1) = *(lpT+lOffset+1);
				*(lpData + lOffset+2) = *(lpT+lOffset+2);
			}
			for(i =0;i<height;i++)
		{
			lOffset = cDib.PixelOffset(i,0,wBytesPerLine);
			*(lpData+lOffset++) =0;
			*(lpData+lOffset++) =0;
			*(lpData+lOffset++) =0;
		}

		for(i =0;i<height;i++)
		{
			lOffset = cDib.PixelOffset(i,width-1,wBytesPerLine);
			*(lpData+lOffset++) =0;
			*(lpData+lOffset++) =0;
			*(lpData+lOffset++) =0;
		}
		for(i =0;i<width;i++)
		{
			lOffset = cDib.PixelOffset(height-1,i,wBytesPerLine);
			*(lpData+lOffset++) =0;
			*(lpData+lOffset++) =0;
			*(lpData+lOffset++) =0;
		}
		for(i =0;i<width;i++)
		{
			lOffset = cDib.PixelOffset(0,i,wBytesPerLine);
			*(lpData+lOffset++) =0;
			*(lpData+lOffset++) =0;
			*(lpData+lOffset++) =0;
		}
		GlobalUnlock(hDIBCurrent);
		GlobalUnlock(hNewDIB);
		Invalidate();
}

void CYdpdView::OnMenuGetedge() 
{	
	LPBITMAPINFOHEADER lpbi;
	int height,width;
	WORD wBytesPerLine;
	LPBYTE lpData;
	long lOffset;
	lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDIBCurrent);
	height = lpbi->biHeight;
	width = lpbi->biWidth;
	lpData = cDib.FindDIBBits(hDIBCurrent);
	wBytesPerLine = cDib.BytePerLine(hDIBCurrent);


	HANDLE hNewDIB;
	
	LPBYTE lpT;

	hNewDIB = GlobalAlloc(GHND,lpbi->biSize+lpbi->biSizeImage);
	if(!hNewDIB)
		return ;
		
	lpT = cDib.FindDIBBits(hNewDIB);
	for(int i=1;i<height-1;i++)
		for(int j=1;j<width-1;j++)
		{	
			lOffset = cDib.PixelOffset(i-1,j+1,wBytesPerLine);
			int color1 = *(lpData+lOffset);
			lOffset = cDib.PixelOffset(i+1,j-1,wBytesPerLine);
			int color2 = *(lpData+lOffset);
			lOffset = cDib.PixelOffset(i,j,wBytesPerLine);
			*(lpT +lOffset++) = abs(color1-color2);
			*(lpT +lOffset++) = abs(color1-color2);
			*(lpT +lOffset++) = abs(color1-color2);
		}
		for(i = 1;i<height-1;i++)
			for(int j=1;j<width-1;j++)
			{
				lOffset = cDib.PixelOffset(i,j,wBytesPerLine);
				*(lpData+lOffset) = *(lpT+lOffset);
				*(lpData+lOffset+1) = *(lpT+lOffset+1);
				*(lpData+lOffset+2) = *(lpT+lOffset+2);
			}
			GlobalUnlock(hDIBCurrent);
			GlobalUnlock(hNewDIB);
			GlobalFree(hNewDIB);
			Invalidate();
}

void CYdpdView::OnMenuYdpdGray() 
{
	hDIBCurrent = cDib.ToGray(hDIBCurrent);
	Invalidate();
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久品道一品道久久精品| 亚洲美女电影在线| 色天天综合色天天久久| 日本亚洲天堂网| 亚洲国产精品ⅴa在线观看| 欧美日韩三级视频| 成人丝袜视频网| 日本亚洲三级在线| 亚洲精品五月天| 欧美韩国一区二区| 日韩不卡一区二区三区| 中文字幕日韩一区二区| 欧美成人乱码一区二区三区| 91国偷自产一区二区使用方法| 国产精品2024| 精油按摩中文字幕久久| 一区二区成人在线| 中文字幕视频一区| 久久久久久久久久看片| 日韩美女在线视频| 欧美日韩在线观看一区二区 | 九九**精品视频免费播放| 洋洋av久久久久久久一区| 日本一区二区高清| 国产人成亚洲第一网站在线播放| 欧美一区二区三区播放老司机| 在线看一区二区| 99久久777色| av在线播放成人| aaa亚洲精品| www.欧美色图| 成人av在线一区二区| 日韩欧美国产一二三区| 制服丝袜中文字幕一区| 欧美片网站yy| 欧美精品在线一区二区三区| 一本到不卡免费一区二区| 91在线小视频| 91香蕉视频污在线| 色播五月激情综合网| 在线亚洲一区二区| 在线免费亚洲电影| 欧美视频一区二区三区| 精品视频一区二区不卡| 中文字幕亚洲一区二区av在线| 亚洲国产精品99久久久久久久久| 国产精品欧美一区喷水| 中文字幕欧美区| 国产精品美女久久福利网站| 成人欧美一区二区三区小说 | 久久精品久久综合| 韩国一区二区视频| 国产成人免费xxxxxxxx| 成人av电影在线| 国产丝袜在线精品| 国产精品人人做人人爽人人添| 国产精品女主播在线观看| 亚洲欧美日韩在线| 亚洲高清三级视频| 蜜臀av一区二区三区| 国产精品综合在线视频| av在线不卡免费看| 欧美三级在线播放| 精品理论电影在线观看| 国产精品麻豆欧美日韩ww| 日韩理论片网站| 亚洲国产精品一区二区尤物区| 99热在这里有精品免费| 欧美性猛交xxxx黑人交| 日韩欧美一区二区视频| 久久精品网站免费观看| 亚洲精品乱码久久久久久| 婷婷综合久久一区二区三区| 国产一区二区免费视频| 91蝌蚪porny成人天涯| 91精品国产综合久久精品图片| 欧美变态口味重另类| 最新成人av在线| 丝袜美腿亚洲综合| 国产成人免费av在线| 亚洲同性gay激情无套| 香蕉成人伊视频在线观看| 国产精品一区在线| 欧美日韩一区二区三区在线看| 欧美一二三区在线| 亚洲欧美日韩在线| 另类小说色综合网站| 色香蕉成人二区免费| 精品精品国产高清a毛片牛牛 | 老司机一区二区| av午夜精品一区二区三区| 7777精品伊人久久久大香线蕉超级流畅| 午夜精品国产更新| 成人av片在线观看| 日韩欧美的一区| 亚洲精品免费播放| 国产**成人网毛片九色| 91精品国产综合久久精品麻豆| 国产免费久久精品| 美女脱光内衣内裤视频久久网站| av男人天堂一区| 精品福利av导航| 亚洲成人综合在线| 91麻豆福利精品推荐| 久久精品视频一区二区| 奇米四色…亚洲| 成人免费在线视频观看| 久久电影网站中文字幕| 欧美人伦禁忌dvd放荡欲情| 欧美激情综合五月色丁香小说| 日韩精品成人一区二区三区| 色国产综合视频| 国产精品电影一区二区| 国产一区二区看久久| 欧美一区二区性放荡片| 香蕉av福利精品导航| 91精品黄色片免费大全| 日日摸夜夜添夜夜添国产精品| 成人av电影在线| 五月天中文字幕一区二区| 亚洲主播在线观看| 99re视频这里只有精品| 欧美激情中文字幕| 精品一区二区三区香蕉蜜桃| 7777精品伊人久久久大香线蕉完整版| 亚洲精品亚洲人成人网 | 国产风韵犹存在线视精品| 欧美精品乱码久久久久久| 亚洲精品老司机| 91免费国产视频网站| 中文字幕成人网| 成人午夜av电影| 欧美国产激情二区三区| 大白屁股一区二区视频| 亚洲国产精华液网站w| 国产精品91xxx| 中文字幕欧美激情| 久久精品一区二区| 国产成人一区二区精品非洲| 久久久国际精品| 粉嫩欧美一区二区三区高清影视| 久久精品人人爽人人爽| 久久国内精品自在自线400部| 日韩欧美在线综合网| 26uuu国产电影一区二区| 九色|91porny| 久久五月婷婷丁香社区| 国产一区二区三区在线观看免费视频 | 成人欧美一区二区三区| 97久久精品人人做人人爽50路| 亚洲日本一区二区| 91在线观看成人| 亚洲线精品一区二区三区八戒| 91电影在线观看| 视频一区欧美日韩| 精品国产乱码久久久久久蜜臀| 精品视频1区2区| 日韩激情在线观看| 久久免费美女视频| 国产成人av一区二区三区在线| 中文字幕免费一区| 在线区一区二视频| 久久国产三级精品| 中文字幕高清一区| 欧美色图在线观看| 极品少妇一区二区三区精品视频| 久久久久久久性| 色婷婷久久综合| 蜜臀av一区二区在线观看| 欧美国产丝袜视频| 欧美性生交片4| 精品一区二区三区欧美| 国产精品另类一区| 欧美日韩精品一区二区三区蜜桃| 色八戒一区二区三区| 欧美aaaaa成人免费观看视频| 国产亚洲综合av| 欧美视频三区在线播放| 国产麻豆精品视频| 亚洲一区二区三区四区在线| 欧美精品日韩精品| 高清不卡一区二区| 偷窥国产亚洲免费视频| 欧美国产精品v| 337p亚洲精品色噜噜噜| 成人国产精品免费观看动漫| 五月天网站亚洲| 中文在线一区二区| 69av一区二区三区| 99久久久国产精品| 精品亚洲porn| 国产成人免费在线| 日日摸夜夜添夜夜添精品视频| 欧美国产97人人爽人人喊| 日韩丝袜美女视频| 色婷婷亚洲一区二区三区| 国产精品一品二品| 另类小说视频一区二区| 亚洲一区在线播放| 国产精品国产三级国产普通话蜜臀 |