移動(dòng)偵測(cè)算法_第1頁(yè)
移動(dòng)偵測(cè)算法_第2頁(yè)
移動(dòng)偵測(cè)算法_第3頁(yè)
移動(dòng)偵測(cè)算法_第4頁(yè)
移動(dòng)偵測(cè)算法_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、思路:1、 YUV數(shù)據(jù)輸入,YUV4:2:2,Y為逐點(diǎn)采樣的亮點(diǎn),提取每點(diǎn)的Y得到一幀圖像的灰階圖。2、 根據(jù)灰階圖,可以得到一個(gè)直方圖統(tǒng)計(jì)。3、 通過(guò)比較兩幀的直方圖得到兩幀的匹配度。4、 當(dāng)匹配度低于閾值判斷兩幀為不匹配,為有物體移動(dòng)。難點(diǎn):1、 直方圖比較兩幀得到匹配度。2、 如何選取兩幀,兩幀的比較選取。3、 由灰階得到直方圖#include"params.h"/*histgram- image_in: hist:*/void histgram(unsigned char image_inxziseysize,long hist256)int i,j,n;for(n

2、=0;n<256;n+) histn=0;for(i=0;i<ysize;i+) for(j=0;j<xsize;j+) n=image_inij; histn+; 圖像相似度檢測(cè)之C+代碼(8位-256色)本代碼屬于原創(chuàng),如需引用,請(qǐng)聲明來(lái)源下面是直方圖相交的代碼,同種圖片的識(shí)別率達(dá)90%以上,性能非常穩(wěn)定。程序的例子是8位(256色)位圖,其他位圖類似。view plaincopy to clipboardprint?#include <fstream>#include <map>#include <string>#include &l

3、t;iostream> using namespace std; typedef unsigned char uvar8; typedef unsigned int uvar32; typedef unsigned short int uvar16; typedef struct uvar8 Blue; /*藍(lán)色所占比重*/ uvar8 Green; /*綠色所占比重*/ uvar8 Red; /*紅色所占比重*/ uvar8 Reserved; Palette; /定義bmp結(jié)構(gòu) uvar8 bfType2; /* 類型標(biāo)志,總是BM */ typedef struct uvar32

4、bfSize; /* 文件大小 */ uvar32 bfReserved1; uvar32 bfOffBits; /* 位圖點(diǎn)陣偏移量*/ HEAD; typedef struct uvar32 biSize; /* 結(jié)構(gòu)體字節(jié)總數(shù) */ uvar32 biWidth; /* 圖像寬度 */ uvar32 biHeight; /*圖像高度 */ uvar16 biPlanes; /* 必須為1 */ uvar16 biBitCount; /* 每個(gè)像素所占二進(jìn)制位數(shù),可能是1,4,8或 24 */ uvar32 biCompress; /*壓縮方式*/ uvar32 biSizeImage;

5、/*像素點(diǎn)陣大小 */ uvar32 biXPelsPerMeter; /* 水平像素?cái)?shù)*/ uvar32 biYPelsPerMeter; /* 垂直像素?cái)?shù) */ uvar32 biClrUsed; /*使用的顏色數(shù) */ uvar32 biClrImportant; /*重要顏色數(shù) */ INFO; bool ReadBMP(string strFileUrl,uvar8* & pImgData,int& iSum) HEAD strHead; INFO strInfo; uvar8 type2; /uvar32 imdata256256; Palette Rgbquad;

6、 ifstream fin; fin.open(strFileUrl.c_str(),ios_base:in | ios_base:binary); /*以二進(jìn)制讀方式打開該文件,一定要二進(jìn)制的!*/ if(!fin) cout<<"No this file!n" return false; fin.read(char*)&bfType,2); fin.read(char*)&strHead,sizeof(strHead); fin.read(char*)&strInfo,sizeof(strInfo); fin.seekg(strHea

7、d.bfOffBits,ios:beg); if (strInfo.biBitCount = 8) /pImgData = (uvar8*)pImgData; pImgData = new uvar8strInfo.biWidth*strInfo.biHeight; fin.read(char*)(pImgData),strInfo.biWidth * strInfo.biHeight* sizeof uvar8); fin.close(); iSum = strInfo.biWidth * strInfo.biHeight; return true; int main() uvar8 *pI

8、mgData1 =NULL ,*pImgData2 = NULL; int i,iSum1,iSum2; while(1) string url1; string url2; cout<<"cin bmp file name"<<endl; cin>> url1 >> url2; ReadBMP(url1,pImgData1,iSum1); ReadBMP(url2,pImgData2,iSum2); map<int,int> Map1,Map2; for (i=0;i<iSum1;i+) if (Map1.

9、find(pImgData1i)!=Map1.end() Map1(uvar8)pImgData1i+; else Map1(uvar8)pImgData1i = 0; for (i=0;i<iSum2;i+) if (Map2.find(pImgData2i)!=Map2.end() Map2(uvar8)pImgData2i+; else Map2(uvar8)pImgData2i = 0; int iSum = 0; for (map<int,int>:iterator it = Map1.begin(); it!= Map1.end(); it+) iSum += M

10、ap1(uvar8)it->first < Map2(uvar8)it->first ? Map1(uvar8)it->first : Map2(uvar8)it->first; double dResult = (double) iSum / iSum1 > (double) iSum / iSum2 ? (double) iSum / iSum1:(double) iSum / iSum2; /- cout<<endl; cout<<"special dots the sum of pic1 the sum of pic

11、2"<<endl; for (map<int,int>:iterator it1 = Map1.begin(); it1!= Map1.end(); it1+) cout<<it1->first<<" "<<it1->second<<" "<<Map2it1->first<<endl; cout<<"*"<<endl; cout<<"conculsion:"

12、<<endl; cout<< "The sum of dots in Pic1: "<< iSum1<<endl; cout<< "The sum of dots in Pic2: "<< iSum2<<endl; cout<< "The similar dots betwwen pic1 and pic2 : "<<iSum<<endl; cout<<"The rate of simliar

13、betwwen the above two pictures: " << dResult <<endl<<endl; delete pImgData1; delete pImgData2; getchar(); return 0; /函數(shù)名稱: histeq()/傳入?yún)?shù): / BYTE*dstData 要匹配的灰度圖像內(nèi)存空間/ double *srcArray 模版的直方圖累積,并進(jìn)行歸一化,大小為256/ int m_Width 匹配內(nèi)存空間的寬度/ int m_Height 匹配內(nèi)存空間的高度/ int m_pitch 匹配內(nèi)存空間的每行所

14、在內(nèi)存大小/void histeq(BYTE*dstData,double *srcArray,int m_Width,int m_Height,int m_pitch) double dstHist256; memset(dstHist,0,256 * sizeof(double); int i,j; double dstArray256; memset(dstArray,0,256 * sizeof(double); /統(tǒng)計(jì)直方圖 for (i = 0;i < m_Height;i+) for (j = 0;j < m_Width;j+) dstHist(int)dstData

15、i * m_pitch + j+; /計(jì)算直方圖累積 double m_Bytes = m_Width * m_Height; dstArray0 = dstHist0; for (i = 1;i < 256;i+) dstArrayi = dstArrayi - 1 + dstHisti; /直方圖累積歸一化 for (i = 0;i < 256;i+) dstArrayi /= m_Bytes; /直方圖匹配 double m_diffA,m_diffB; int k = 0; BYTE mapPixel256; memset(mapPixel,0,256 * sizeof(B

16、YTE); for (i = 0;i < 256;i+) m_diffB = 1; for (j = k; j < 256;j+) m_diffA = abs(dstArrayi - srcArrayj); if (m_diffA - m_diffB < 1.0E-5) m_diffB = m_diffA; k = j; else k = j - 1; break; if (k = 255) for (int l = i;l < 256;l+) mapPixell = (BYTE) k; break; mapPixeli = (BYTE) k; /目標(biāo)圖像查找索引表 f

17、or (i = 0;i < m_Height;i+) for (j = 0;j < m_Width;j+) dstDatai * m_pitch + j = mapPixeldstDatai * m_pitch + j; / 計(jì)算兩個(gè)直方圖的相似度/ </summary>/ <param name="actualHisogram">待測(cè)圖片的直方圖</param>/ <param name="expectedHisogram">參考圖片的直方圖</param>/ <returns>得到直方圖的相似度</returns> private float GetFinalResult(int actualHisogram, int expectedHisogram)if (actualHisogram.Length != expectedHisogram.Length)return 0;float result = 0;int j = actualHisogram.Length;for (int i = 0; i < j; i+)result += 1 - GetAbs(a

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論