欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

Opencv光流運(yùn)動(dòng)物體追蹤詳解

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語言|點(diǎn)擊: 次

光流的概念是由一個(gè)叫Gibson的哥們在1950年提出來的。它描述是空間運(yùn)動(dòng)物體在觀察成像平面上的像素運(yùn)動(dòng)的瞬時(shí)速度,利用圖像序列中像素在時(shí)間域上的變化以及相鄰幀之間的相關(guān)性來找到上一幀跟當(dāng)前幀之間存在的對(duì)應(yīng)關(guān)系,從而計(jì)算出相鄰幀之間物體的運(yùn)動(dòng)信息的一種方法。那么所說的光流到底是什么?

簡單來說,上圖表現(xiàn)的就是光流,光流描述的是圖像上每個(gè)像素點(diǎn)的灰度的位置(速度)變化情況,光流的研究是利用圖像序列中的像素強(qiáng)度數(shù)據(jù)的時(shí)域變化和相關(guān)性來確定各自像素位置的“運(yùn)動(dòng)”。研究光流場的目的就是為了從圖片序列中近似得到不能直接得到的運(yùn)動(dòng)場。

光流法的前提假設(shè):

(1)相鄰幀之間的亮度恒定;
(2)相鄰視頻幀的取幀時(shí)間連續(xù),或者,相鄰幀之間物體的運(yùn)動(dòng)比較“微小”;
(3)保持空間一致性;即,同一子圖像的像素點(diǎn)具有相同的運(yùn)動(dòng);

Opencv中金字塔LK光流實(shí)現(xiàn):

#include "highgui/highgui.hpp"  
#include "opencv2/nonfree/nonfree.hpp" 
#include "opencv2/video/tracking.hpp" 
#include <iostream> 
 
using namespace cv; 
using namespace std; 
 
Mat image1,image2; 
vector<Point2f> point1,point2,pointCopy; 
vector<uchar> status; 
vector<float> err; 
 
int main(int argc,char *argv[])  
{  
 VideoCapture video(argv[1]); 
 double fps=video.get(CV_CAP_PROP_FPS); //獲取視頻幀率 
 double pauseTime=1000/fps; //兩幅畫面中間間隔  
 video>>image1; 
 Mat image1Gray,image2Gray; 
 cvtColor(image1,image1Gray,CV_RGB2GRAY); 
 goodFeaturesToTrack(image1Gray,point1,100,0.01,10,Mat()); 
 pointCopy=point1; 
 for(int i=0;i<point1.size();i++) //繪制特征點(diǎn)位 
 {   
  circle(image1,point1[i],1,Scalar(0,0,255),2);   
 }  
 namedWindow("角點(diǎn)特征光流",0); 
 imshow("角點(diǎn)特征光流",image1); 
 while(true) 
 { 
  video>>image2; 
  if(!image2.data||waitKey(pauseTime)==27) //圖像為空或Esc鍵按下退出播放 
  { 
   break; 
  } 
  cvtColor(image2,image2Gray,CV_RGB2GRAY); 
  calcOpticalFlowPyrLK(image1Gray,image2Gray,point1,point2,status,err,Size(20,20),3); //LK金字塔  
  for(int i=0;i<point2.size();i++) 
  { 
   circle(image2,point2[i],1,Scalar(0,0,255),2); 
   line(image2,pointCopy[i],point2[i],Scalar(255,0,0),2); 
  }   
  imshow("角點(diǎn)特征光流",image2); 
  swap(point1,point2); 
  image1Gray=image2Gray.clone(); 
 }  
 return 0;  
} 

圖像跟蹤結(jié)果1:

圖像跟蹤結(jié)果2:

視頻流跟蹤:

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:C++實(shí)現(xiàn)停車場管理系統(tǒng)

欄    目:C語言

下一篇:C++實(shí)現(xiàn)英文句子中的單詞逆序輸出的方法

本文標(biāo)題:Opencv光流運(yùn)動(dòng)物體追蹤詳解

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/994.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有