freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于混合高斯建模方法的運(yùn)動(dòng)目標(biāo)檢測(cè)方法研究與實(shí)現(xiàn)畢業(yè)論文-資料下載頁(yè)

2025-06-30 12:31本頁(yè)面

【導(dǎo)讀】最后利用搭建在VisualC++6.0上的OpenCV軟件進(jìn)行設(shè)計(jì),使用。混合高斯背景的建模方法實(shí)現(xiàn)對(duì)運(yùn)動(dòng)目標(biāo)的檢測(cè)。確地檢測(cè)出復(fù)雜環(huán)境下的運(yùn)動(dòng)目標(biāo),具有較好的魯棒性和實(shí)時(shí)性。

  

【正文】 和計(jì)算機(jī)視覺(jué)方面的很多通用算法。 OpenCV 擁有包括 500 多個(gè) C函數(shù)的跨平臺(tái)的中、高層 APl, 它 通過(guò) 函數(shù)來(lái)實(shí)現(xiàn)用于圖形處理和 計(jì)算機(jī) 視覺(jué)方面的通用算法 [16]。 本文選取 OpenCV進(jìn)行 對(duì)運(yùn)動(dòng)目標(biāo)檢測(cè)的 優(yōu)勢(shì) 。 1. OpenCV對(duì)非 商業(yè)應(yīng)用 和商業(yè)應(yīng)用都是免費(fèi)( FREE)的; 2. 代碼簡(jiǎn)單,穩(wěn)定,有固定的函數(shù)算法提供, 通過(guò)對(duì) OpenCV函數(shù)庫(kù)的調(diào)用, 它為用戶減輕了開(kāi)發(fā)維護(hù)應(yīng)用程序龐大代碼的沉重負(fù)擔(dān) ,有 統(tǒng)一的結(jié)構(gòu)和功能定義,并且可與其他庫(kù)兼容 ; 3. OpenCV致力于 真實(shí)世界 的實(shí)時(shí)應(yīng)用,通過(guò) 對(duì) C語(yǔ)言 代碼 的 優(yōu)化 ,對(duì)程序的 執(zhí)行速度 有很大 的提升,并且可以通過(guò)購(gòu)買 Intel的 IPP 高性能多 媒體函數(shù)庫(kù) (Integrated Performance Primitives)可以 得到更快的處理速度。 OpenCV函數(shù)庫(kù)的搭建 步驟。 首先安裝下載得到的 OpenCV應(yīng)用程序, 在其計(jì)算機(jī)上對(duì)安裝的 OpenCV應(yīng)用程序 進(jìn)行環(huán)境變量的設(shè)置, 然后在 Visual C++6. 0下編譯所要的靜態(tài)和動(dòng)態(tài)鏈接庫(kù)文件,包括 1ib路徑的設(shè)置、 include files等路徑 的 設(shè)置 ,再進(jìn)行工程項(xiàng)目的鏈接設(shè)置。 18 在 VC++6. 0中建立新工程以后,在工程設(shè)置里添加需要的 OpenCV庫(kù),并在程序文件中包含 OpenCV的頭文件,就 可以 搭建好基于 OpenCV下 VC++ 6. 0的環(huán)境設(shè)置 , 這樣就 可以在 Windows下面利用 VC++ 6. 0進(jìn)行基于 OpenCV的程序編程。 圖像二值化 圖像的二值化處理是 將 圖像上的點(diǎn)的灰度 值 置為 0或 255, 而使 整 幅 圖像呈現(xiàn)出 較為明顯的黑白效果。通過(guò) 選取 適當(dāng)?shù)拈y值 , 將 256個(gè)亮度等級(jí)的灰度圖像 變成能夠 反映圖像整體和局部特征的二值化圖像 處理的過(guò)程 。在 進(jìn)行對(duì) 圖像處理 的過(guò)程 中, 對(duì)圖像進(jìn)行二值化處理 非常重要 。 要進(jìn)行二值圖像的處理與分析,首先要把灰度圖像 進(jìn)行 二值化,得到二值化圖像,這樣 就 有利于對(duì)圖像 在 做進(jìn)一步 處理時(shí), 整個(gè) 圖像 中 的集合 屬性 只與 二值化后的 像素值為 0或 255的點(diǎn)的位置有關(guān), 而 不再涉及像素的多級(jí)值, 這樣使圖像的 處理變得簡(jiǎn)單,數(shù)據(jù)的處理和壓縮量 同樣也會(huì)變得更 小。 要想 得到理想的二值圖像,一般需要 采用封閉、連通的邊界定義不交疊的區(qū)域。 將 所有 像素點(diǎn)的 灰度 值 大于或等于 閾值的像素判定為屬于特定物體,其灰度值為 255表示,否則這些像素點(diǎn) 就會(huì) 排除在物體區(qū)域以外,灰度值為 0,表示背景或者例外的物體區(qū)域。 OpenCV 中的圖像二值化 過(guò)程。 OpenCV 中可以通過(guò) cvThreshold 函數(shù)實(shí)現(xiàn)圖片的二值化 , 手動(dòng)指定一 個(gè)閾值,以此閾值來(lái)進(jìn)行圖像二值化處理 。 cvThreshold(pFrImg,pFrImg,12,255,CV_THRESH_BINARY)。 函數(shù) cvThreshold 對(duì)單通道數(shù)組應(yīng)用固定閾值操作。該函數(shù)的典型應(yīng)用是對(duì)灰度圖像進(jìn)行閾值操作得到二值圖像。 cvThreshold( dst, src,200, 255, CV_THRESH_OTSU); pFrImg:前景的輸入 圖像; pFrImg:前景的 輸出圖像; 12:指的是閾值; 255:指的是 max_value; CV_THRESH_BINARY:指的是 threshold_type。 當(dāng) threshold_type 使用 CV_THRESH_BINARY 類型時(shí),得到的全局自適應(yīng)閾值 的 二值化圖片 , 這種方法 有利于處理 灰度直方圖呈現(xiàn) 多 峰特征的圖片。 形態(tài)學(xué)運(yùn)算 數(shù)學(xué)形態(tài)學(xué)( Mathematical Morphology)是 一門由 法國(guó)科學(xué)家和德國(guó)科學(xué)家在研究巖 19 石結(jié)構(gòu)時(shí)建立的一門 新興 學(xué)科。 它的主要 用途是獲取物體拓?fù)浜徒Y(jié)構(gòu)信息 [17], 并 通過(guò)物體和結(jié)構(gòu)元素 之間的 相互作用 ,運(yùn)用 某些運(yùn)算得到物體更本質(zhì)的形態(tài)。 數(shù)學(xué)形態(tài)學(xué)的基本運(yùn)算 方法 有 四種 :腐蝕 、膨脹、開(kāi)運(yùn)算和閉運(yùn)算。 下面主要介紹這四種形態(tài)學(xué)算法。 圖像腐蝕 圖像 腐蝕( Erosion)是一種最基本的數(shù)學(xué)形態(tài)學(xué)運(yùn)算, 通過(guò)對(duì)圖像的腐蝕,能夠 消除物體邊界點(diǎn),使 圖像的 邊界向內(nèi)部收縮, 從而 去除小于結(jié)構(gòu)元素的物體。 通過(guò)使用 這樣選取 方法,把 不同大小的結(jié)構(gòu)元素 選取出來(lái) ,就 能夠 去除不同大小的物體。 圖像膨脹 圖像膨脹可以看成是腐蝕的對(duì)偶運(yùn)算, 它和圖像的 腐蝕運(yùn)算 基本 相同,設(shè)定 要處理的 圖像集合 和結(jié)構(gòu)元素,通過(guò)結(jié)構(gòu)元素對(duì)圖像進(jìn)行膨脹處理。通過(guò)膨脹可以對(duì) 二值化物體邊界點(diǎn)進(jìn)行擴(kuò)充, 這樣就使得 與物體接觸 的所有背景點(diǎn) 就會(huì)與 物體 本身進(jìn)行合并 ,使圖像的 邊界向外部擴(kuò)張。 對(duì)于 距離比較近 的 兩個(gè)物體之間, 通過(guò) 膨脹 運(yùn)算 可能會(huì)把兩個(gè)分開(kāi)的 物體連通到一起, 這 對(duì)填補(bǔ) 由于 圖像分割后物體 之間 空洞很有 這重要的作用 。 如下圖 41 所示( a)腐蝕圖像 ( b)膨脹圖像 ( a)腐蝕圖像 ( b)膨脹圖像 圖 41 圖像的腐蝕與膨脹 開(kāi)運(yùn)算和閉運(yùn)算 開(kāi)運(yùn) 算和閉運(yùn)算 是 除了腐蝕和膨脹兩種基本運(yùn)算外的另外兩種重要的形態(tài)學(xué)運(yùn)算。開(kāi)運(yùn)算和閉運(yùn)算 是根 據(jù)腐蝕和膨脹的不可逆性演變而來(lái)的 。 開(kāi)運(yùn)算 是指通過(guò) 對(duì)目標(biāo)圖像先進(jìn)行腐蝕運(yùn)算,再進(jìn)行膨脹運(yùn)算的過(guò)程。 通過(guò) 開(kāi)運(yùn)算能夠去除 圖像中 孤立 的 小點(diǎn)和小 20 的連通區(qū)域,去除 一些 小 的 物體 和 平滑較大物體的邊界,同時(shí)不 大范圍的 改變 原圖像的面積 [18]。 而 閉運(yùn)算是開(kāi)運(yùn)算的對(duì)偶運(yùn)算, 它是 通過(guò)對(duì)目標(biāo)圖像先進(jìn)行膨脹運(yùn)算,再進(jìn)行腐蝕運(yùn)算 而得到的圖像 , 通過(guò)使用閉運(yùn)算 功 可以 用來(lái)填充物體 間 細(xì)小 的 空洞、連接臨近的 物體、平滑其邊界,同時(shí) 也 不明顯改變目標(biāo)圖像的面積。 形態(tài)學(xué)運(yùn)算的部分代碼 /*對(duì)前景進(jìn)行腐蝕操作,腐蝕半徑為 1,可設(shè)置 */ cvErode( pFrImg,img_erode, NULL,1)。 /*對(duì)前景進(jìn)行膨脹操作,膨脹半徑為 2,可設(shè)置 */ cvDilate( img_erode,img_dilate, NULL,2)。 函數(shù) cvDilate 對(duì)輸入圖像使用指定的結(jié)構(gòu)元進(jìn)行膨脹。具體操作是 :將輸入圖像與結(jié)構(gòu)元素 (核 )進(jìn)行卷積,計(jì)算結(jié)構(gòu)元素覆蓋的區(qū)域的像素點(diǎn)最大值,并把這個(gè)最大值賦值給參考點(diǎn) (錨點(diǎn) )所指定的像 素。 形態(tài)學(xué)處理的效果圖 下面的幾幅圖表示圖像的二值化圖像,以及對(duì)閾值取不同的值時(shí),所檢測(cè)到的前景圖像, 其效果圖 如圖 42 所示。 圖 42 形態(tài)學(xué)圖像處理 21 混合高斯背景建模的流程圖 混合高斯背景模型的建立,首先需要導(dǎo)入一個(gè) avi的視頻序列,建立混合高斯背景模型并進(jìn)行初始化,然后對(duì)視頻序列進(jìn)行逐幀讀取,并對(duì)圖像進(jìn)行灰度處理和二值化處理,以及對(duì)幀圖像進(jìn)行去噪處理,隨著幀數(shù)的不斷更新,實(shí)時(shí)對(duì)背景, 前景 進(jìn)行更新,以適應(yīng)光線的變化和場(chǎng)景本身的變化,對(duì)檢測(cè)結(jié)果 進(jìn)行形態(tài)學(xué)處理,使其圖像的邊緣更加精確得當(dāng) , 同時(shí) 消除噪聲和背景擾動(dòng) 對(duì)圖像的檢測(cè)所 帶來(lái)的影響。 最后通過(guò)運(yùn)行程序源代碼,顯示出結(jié)果,實(shí)現(xiàn)對(duì)運(yùn)動(dòng)目標(biāo)的檢測(cè)。流程圖如 43 圖所示。 圖 43 混合高斯背景建模流程圖 幀圖像的形態(tài)學(xué)運(yùn)算處理 背景圖和前景圖的更新 視頻圖像的顯示 混合高斯背景模型的建立及初始化 導(dǎo)入視頻 開(kāi)始 逐幀讀取視頻圖像并去噪 幀圖像的去噪和二值化處理 結(jié)束 22 利用混合高斯模型進(jìn)行背景建模 混合高斯建模方法能夠適用于背景出現(xiàn)微小擾動(dòng)對(duì)運(yùn)動(dòng)目標(biāo)檢測(cè)所帶來(lái)的干 擾,并且能夠 適應(yīng)光線的變化和場(chǎng)景本身的變化 ,通過(guò)利用混合高斯模型進(jìn)行背景建模,使其圖像的邊緣更加精確得當(dāng) , 同時(shí) 消除噪聲和背景擾動(dòng) 對(duì)圖像的檢測(cè)所 帶來(lái)的影響 。 利用混合高斯模型進(jìn)行背景建模時(shí),首先需要初始化預(yù)先定義的幾個(gè)高斯模型,對(duì)高斯模型中的參數(shù)進(jìn)行初始化,并通過(guò)視頻序列的像素點(diǎn)求出像素點(diǎn)的均值和方差,并通過(guò)求其權(quán)重,求出之后將要用到的參數(shù);其次,對(duì)于每一幀中的每個(gè)像素進(jìn)行處理,看其是否匹配高斯模型,若匹配,則將其歸入該模型中,并對(duì)該模型中新的像素值進(jìn)行更新,若不匹配,則去除當(dāng)前混合高斯模型中權(quán)重最小的模型, 并加入新的模型的權(quán)重,新模型的權(quán)重是全部模型中的最小值,并且均值是當(dāng)前所觀測(cè)到的像素值的均值,方差為一個(gè)給定的較大的常數(shù)。最后通過(guò)高斯混合模型的參數(shù)學(xué)習(xí)機(jī)制,求出各個(gè)高斯模型的權(quán)重與方差的比值,并對(duì)他們的優(yōu)先級(jí)按照從大到小的順序進(jìn)行排列,排在前面的作為背景模型的可能最大,反之,則為前景。 混合高斯背景模型的建立及初始化 利用混合高斯模型來(lái)模擬背景圖像進(jìn)行運(yùn)動(dòng)目標(biāo)檢測(cè),首先定義每個(gè)像素點(diǎn)的分布模型由多個(gè)高斯分布模型組成,每一個(gè)新的像素點(diǎn)都會(huì)更新高斯分布的參數(shù),其實(shí)現(xiàn)如下。 (1)像素模型參數(shù)的初 始化 本文用 ),( ??? tX 來(lái)表示均值為 ? , 協(xié)方差矩陣為 ? 的高斯分布概率密度函數(shù)。 用多個(gè)高斯分布線性組合模擬每個(gè)像素點(diǎn)的歷史記錄 }X,......,{X t1 , 概率密度函數(shù)記 為 ),( , tititX ??? Mi ,......,2,1? (41) 協(xié)方差矩陣為 Iktk 2, ??? (42) 其中 I 為單位矩陣,但不一定符合實(shí)際,從而這個(gè)單高斯分布模型的概率密度為: ),|( , tititX ??? (43) 當(dāng)前像素值 tX 的概率為 ?? ??Mi titittit XwXP 1 , ),|()( ??? (44) ti,? 表示單模型的均值,體現(xiàn)了每個(gè)單峰的分布中心; ti,2? 表示單模型的方差,體現(xiàn) 了像素值的不穩(wěn)定程度; tiw, 表示了該高斯分布模型的權(quán)值,其大小體現(xiàn)了采用當(dāng)前模型表示像素值的可靠性。 M 表示單模型的個(gè)數(shù),體現(xiàn)了像素之多峰多分布的峰的個(gè)數(shù), M 23 的取值依賴于像素值的分布。 M 越大,處理波動(dòng)的能力越強(qiáng),但所需的處理時(shí)間越長(zhǎng)。 初始化混合高斯模型時(shí),首先計(jì)算一段時(shí)間內(nèi)的視頻序列圖像中像素點(diǎn)的平均像素值 0? 及像素的方差 02? ,然后初始化高斯混合模型中高斯分布的參數(shù)。 ???1N0t t0 XN1? , ??? ??10 020 )(N1 Nt tX ?? (45) (2)找出與當(dāng)前像素值最近的背景 這里要找出 N 個(gè)背景中與當(dāng)前觀測(cè)值最接近的一個(gè)背景像素值存在代表背景的圖片中。如果處理的是第一幀圖像,則它的背景就是本身。 在 OpenCV 函數(shù) 庫(kù)中 , 提供了 混合 高斯模 型方 法的函 數(shù), 通過(guò)CvGaussBGModel 類用來(lái)儲(chǔ)存混合高斯模型的各個(gè)參數(shù),但是在使用 OpenCV 的混合高斯模型函數(shù)時(shí)需要注意的是。 (a) 在 對(duì) 混 合 高 斯 模 型 建 立 時(shí) , 需 要 用 到 cvUpdateBGStatModel ,cvCreateGaussianBGModel 以及 cvCreateImage 這三個(gè) 函數(shù)類, cvCreateGaussianBGModel的調(diào)用是要在原始輸入數(shù)據(jù)為空的情況下, cvCreateGaussianBGModel 則恰好相反,但是源程序中將這兩個(gè)函數(shù)定義為內(nèi)部函數(shù), cvCreateImage 是創(chuàng)建首地址并分配存儲(chǔ)空間 。 (b)在進(jìn)行類型的轉(zhuǎn)換時(shí),需要注意 cvCreateGaussianBGModel 函數(shù)返回值為CvBGStatModel*, 所以就需要將 bg_model 強(qiáng)制轉(zhuǎn)換為 CvGaussBGModel*,只有這樣才能進(jìn)行前景建模。 部分代碼如下 //初始化高斯混合模 型參數(shù) CvGaussBGModel* bg_model=NULL。 IplImage *img_erode。 IplImage *img_dilate。 while(pFrame = cvQueryFrame( pCapture )) { nFrmNum++。 if(nFrmNum == 1) { pBkImg=cvCreateImage(cvSize(pFramewidth,pFrameheight),IPL
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1