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

正文內(nèi)容

基于opencv目標(biāo)跟蹤與檢測課程設(shè)計(jì)-文庫吧資料

2024-11-18 15:56本頁面
  

【正文】 rawImage,result,hist)。 // //get from video frame,unsigned byte,one channel // IplImage* result=cvCreateImage(cvGetSize(rawImage),IPL_DEPTH_8U,1)。target_hue, hist, 0, NULL)。 //H 分量的取值范圍是 [0,360) CvHistogram* hist=cvCreateHist(1, hist_size, ranges, 1)。 int hist_size[]={255}。 //轉(zhuǎn)化到 HSV 空間 cvSplit( target_hsv, target_hue, NULL, NULL, NULL )。 IplImage* target_hue=cvCreateImage( cvGetSize(target), IPL_DEPTH_8U, 3 )。 ( 1) 準(zhǔn)備一張只包含被跟蹤目標(biāo)的圖片,將色彩空間轉(zhuǎn)化到 HSI 空間,獲得其中的 H分量: IplImage* target=cvLoadImage(,1)。 2. CvArr** backproject:存放 Back Projection 結(jié)果,輸出。 在 OpenCV 中的直方圖函數(shù)中,包含 Back Projection 的函數(shù),函數(shù)原型是: void cvCalcBackProject(IplImage** img, CvArr** backproject, const CvHistogram* hist)。所以在具體的計(jì)算過程中,首先將其他的色彩空間的值轉(zhuǎn)化到 HSI 空間,然后會其中的 H 分量做 1D 直方圖計(jì)算。我把這個(gè)算法分解成三個(gè)部分,便于理解: 1) Back Projection 計(jì)算 2) Mean Shift 算法 3) CamShift 算法 Projection 計(jì)算 Back Projection 的步驟是這樣的: 1. 計(jì)算被跟蹤目標(biāo)的色彩直方圖。 CamShift 算法,即 Continuously Apative MeanShift算法,是一種運(yùn)動(dòng)跟蹤算法。 ( 4) 利用經(jīng)典的“ Mean Shift”算法,不斷平移調(diào)整窗口中心到與目標(biāo)重心重合 ( 5)將上一幀的窗口大小和中心,作為下一幀 Mean Shift 算法搜索窗口的初始值,在下一幀中繼續(xù) Mean Shift 運(yùn)算。 連續(xù)適應(yīng)性均值移動(dòng)算法( CamShift) 本平臺在進(jìn)行運(yùn)動(dòng)物體檢測跟蹤時(shí)所采用的算法是:首先利用“幀差法”檢測出初始的運(yùn)動(dòng)目標(biāo);一旦認(rèn)為此目標(biāo)合法,便根據(jù)目標(biāo)在 HSI(色調(diào)、飽和度、強(qiáng)度)空間中 H 通道的色調(diào)特性,利用“連續(xù)適應(yīng)性均值移動(dòng)算法( CamShift)”,對目標(biāo)進(jìn)行跟蹤。 一般目標(biāo)跟蹤的實(shí)現(xiàn)的流程圖。 運(yùn)動(dòng)目標(biāo)檢測時(shí)各種后續(xù)高級應(yīng)用如目標(biāo)跟蹤,目標(biāo)分類,目標(biāo)行為理解等的基礎(chǔ)主要目的是從視頻圖像中提取出運(yùn)動(dòng)目標(biāo)并獲得運(yùn)動(dòng)目標(biāo)的特征信息,如顏色,形狀,輪廓等。 (4)運(yùn)行結(jié)果。當(dāng) ID=1 時(shí),表示隨機(jī)選擇一個(gè)。只是有一處代碼有所改只需把cvCreateFileCapture 改成 cvCreateCameraCapture 即可。 } (3)相關(guān)代碼的解釋。 cvDestroyWindow(avi)。 } cvReleaseCapture(amp。 char c = cvWaitKey(33)。 if(!frame)break。 IplImage* frame。 include int main(int argc, char* argv[]) { cvNamedWindow(avi)。 IplImage 獲取的指針 (2)相關(guān)代碼 對 AVI 文件中的視頻進(jìn)行處理,可用如下程序。返回的圖 像不可以被用戶釋放或者修改。 攝像頭 cvQueryFrame 視頻文件 cvCreateFileCapture CvCapture cvCreateCameraCapture IplImage 參數(shù) 類型 說明 Filename const char* 使用視頻文件名 說明:該函數(shù)給指定文件的視頻流分配和初始化 CvCapture. 返回值 。結(jié)構(gòu) CVCapture 沒有公共接口,它只能用來作視頻獲取函數(shù)中實(shí)用的一個(gè)參數(shù)。 (1)與其相關(guān)的說明 在獲取攝像頭之前先來熟悉以下 opencv 中視頻獲取的數(shù)據(jù)結(jié)構(gòu)的管理方式。 比如從視頻文件中獲取,需要保存視頻文件的文件名,相應(yīng)的解碼器類型,下一次如果要獲取將需要解碼哪一幀等。 opencv 提供兩種方式從外部捕獲圖像 一種是從攝像頭中,一種是通過解碼視頻得到圖像。 ( 5)運(yùn)行結(jié)果 (6)加載視頻既可以使用加載一段視頻,也可以打開一個(gè)自己電腦上的攝像頭。或者使用格式工廠也可以。 需要把它轉(zhuǎn)換 OpenCV 支持的 AVI文件 . OpenCV 支持的 AVI。 得到一個(gè)IplImage 指針以獲取下一幀視頻 按下 esc鍵 加載一個(gè)窗口 創(chuàng)建一個(gè)窗口以顯示所加載的視頻,以每一幀的方式 關(guān)閉視頻 結(jié)束 繼續(xù)播放視頻 播放結(jié)束 (4)加載視頻中可能遇到的問題以及可能的原因。自己就在網(wǎng)上下載了一個(gè)貍窩視頻轉(zhuǎn)換器用來轉(zhuǎn)換視頻格式。所以一定要 安裝解碼器 ,程序才能加載一個(gè)視頻。 return 0。capture)。 if(c==27) { break。 } cvShowImage(avi,frame)。 while(1) { frame = cvQueryFrame(capture)。 // CvCapture CvCapture* capture = cvCreateFileCapture(E:\\學(xué)習(xí) \opencv\\學(xué)習(xí) opencv代碼 \\讀取一個(gè)視頻 \\絕望的主婦第七季 )。 } 加載一個(gè)視頻。 cvWaitKey(0)。 //給打開的窗口命名 cvNamedWindow(show_image)。 一些 opencv 的基本功能 圖片顯示 利用 opencv 中自帶的函數(shù)打開一張圖片。菜單:ProjectSettings,然后將 Setting for 選為 All Configurations,然后選擇右邊的 link 標(biāo)簽,在 Object/library modules 附加上 如果你不需要這么多 lib,你可以只添加你需要的 lib。(可以在任務(wù)管理器里重啟 ) 配置 Visual C++ 全局設(shè)置 菜單 ToolsOptionsDirectories:先設(shè)置 lib路徑,選擇 Library files,在下方填入路徑: C:\Program Files\OpenCV\lib 然后選擇 include files,在下方填入路徑: C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cvaux\include C:\Program Files\OpenCV\ml\include C:\Program Files\OpenCV\otherlibs\highgui C:\Program Files\OpenCV\otherlibs\cvcam\include 然后選擇 source files,在下方填入路徑: C:\Program Files\OpenCV\cv\src C:\Program Files\OpenCV\cxcore\src C:\Program Files\OpenCV\cvaux\src C:\Program Files\OpenCV\otherlibs\highgui C:\Program Files\OpenCV\otherlibs\cvcam\src\windows 最后點(diǎn)擊 “ok” ,完成設(shè)置。 Windows環(huán)境變量 檢查 C:\Program Files\OpenCV\bin 是否已經(jīng)被加入到環(huán)境變量 PATH,如果 沒有,請加入。(下面附圖為 OpenCV 的安裝界面, OpenCV 安裝界面與 此基本一致。 安裝 OpenCV 從 下載 OpenCV 安裝程序。 系統(tǒng)設(shè)計(jì)實(shí)現(xiàn) 平臺的搭建 開發(fā)平臺搭建 安裝、下載 Opencv,并在 Microsoft Visual C++ 編譯環(huán)境下配置 opencv。 Frame rate中文常譯為 “ 畫面更新率 ” 或 “ 幀率 ” ,是指 視頻格式 每秒鐘播放的靜態(tài)畫面數(shù)量。所謂的測量單位為每秒顯示幀數(shù) (Frames per Second,簡稱: FPS)或 “ 赫茲 ” ( Hz)。 但文件大小會變得越大。高的 幀率 可以得到更流暢、更逼真的動(dòng)畫。 幀數(shù): 幀數(shù)就是在 1秒鐘時(shí)間里傳輸?shù)膱D片的量,也可以理解為圖形處理器每秒鐘能夠刷新幾次,通常用 fps( Frames Per Second)表示。 3. 關(guān)于 視頻 視頻( Video)泛指將一系列靜態(tài) 影像 以電信號方式加以捕捉,紀(jì)錄,處理,儲存,傳送,與重現(xiàn)的各種技術(shù)。 3通道:如果一個(gè)像素點(diǎn),由 RGB三種顏色來描述它,就是三通道,為 3。 2通道: 2通道圖像不常見,通常在程序處理中會用到,如傅里葉變換,可能會用到,一個(gè)通道為實(shí)數(shù),一個(gè)通道為虛數(shù),主要是編程方便;還有一種情況就是16位圖像,本來是 3通道,但是為了減少數(shù)據(jù)量,壓縮為 16位,剛好兩個(gè) 通道,常見格式有 RGB555或 RGB565,也就是說 R占 5位, G占 5或 6位, B占 5位,也有 RGBA5551格式。像素:位圖圖像是由許多個(gè)離散的點(diǎn)組成,它們是組成圖像的基本單元,被稱為像素。 位圖:采用點(diǎn)陣方式構(gòu)成圖像,可以表現(xiàn)豐富的圖像色彩,但是文件占用存儲空間較大。但是光流法的優(yōu)點(diǎn)在于光流不僅攜帶了運(yùn)動(dòng)物體的運(yùn)動(dòng)信息,而且還攜帶了有關(guān)景物三維結(jié)構(gòu)的豐富信息,它能夠在不知道場景的任何信息的情況下,檢測出運(yùn)動(dòng)對象。當(dāng)圖像中有運(yùn)動(dòng)物體時(shí),目標(biāo)和圖像背景存在相對運(yùn)動(dòng),運(yùn)動(dòng)物體所形成的速 度矢量必然和鄰域背景速度矢量不同,從而檢測出運(yùn)動(dòng)物體及位置。 ( 2) 光流法 光流法檢測運(yùn)動(dòng)物體的基本原理是:給圖像中的每一個(gè)像素點(diǎn)賦予一個(gè)速度矢量,這就形成了一個(gè)圖像運(yùn)動(dòng)場,在運(yùn)動(dòng)的一個(gè)特定時(shí)刻,圖像上的點(diǎn)與三維物體上的點(diǎn)一一對應(yīng),這種對應(yīng)關(guān)系可由投影關(guān)系得到,根據(jù)各個(gè)像素點(diǎn)的速度矢量特征,可以對圖像進(jìn)行動(dòng)態(tài)分析。其缺點(diǎn)是: 不能提取出對象的完整區(qū)域,只能提取出邊界;同時(shí)依賴于選擇的幀間時(shí)間間隔。圖像序列逐幀的差分,相當(dāng)于對圖像序列進(jìn)行了時(shí)域下的高通濾波。 幀間差分法是一種通過對視頻圖像序列中相鄰兩幀作差分運(yùn)算來獲得運(yùn)動(dòng)目標(biāo)輪廓的方法,它可以很好地適用于存在多個(gè)運(yùn)動(dòng)目標(biāo)和攝像機(jī)移動(dòng)的情況。累積圖像差分法進(jìn)一步計(jì)算一階和二階差分圖像,利用時(shí)間序列圖像的歷史積累信息,能夠適應(yīng)低對比度有噪時(shí)間序列,判斷復(fù)雜情況下目標(biāo)運(yùn)動(dòng)的多種狀態(tài)。由于相鄰幀的時(shí)間間隔一般較短,因此算法對場景中的動(dòng)態(tài)變化不太敏感,具有較強(qiáng)的 自適應(yīng)性。在此基礎(chǔ)上,對背景、靜止目標(biāo)和運(yùn)動(dòng)目標(biāo)三者采取不同的更新策略,以減弱背景更新過程中運(yùn)動(dòng)目標(biāo)對背景的影響。同時(shí)根據(jù)新獲取的圖像,對背景圖像參數(shù)進(jìn)行自適應(yīng)更新。背景獲取算法通常要求在場景中存在運(yùn)動(dòng)目標(biāo)的情況下獲取背景圖像,更新過程使背景能夠適應(yīng)場景的各種變化和干擾,如外界光線的改變,背景中對象的擾動(dòng)和固定對象的移動(dòng),陰影的影響等。該算法實(shí)現(xiàn)簡單,相減結(jié)果直接給出目標(biāo)的位置、大小、形狀等信息,能夠提供關(guān)于運(yùn)動(dòng)目標(biāo)區(qū)域的完整描述,特別是對于攝像機(jī)靜止的情況,背景減法是實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)實(shí)時(shí)檢測和提取的首選方法。但這種算法難免復(fù)雜度大,現(xiàn)有一些算法大多是針對某一類問題提出的,主要包括背景減法、相鄰幀差法等 。 vRect cvGetImageROI(const IplImage* image)。 設(shè)定 /獲取興趣區(qū)域 : void cvSetImageROI(IplImage* image, CvRect rect)。 ( 4) 設(shè)定 /獲取興趣通道 :void cvSetImageCOI(IplImage* image, int coi)。 IplImage* img2。img)。 釋放圖像空間
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1