2017-02-13 41 views
1

我使用opencv與C++進行人臉識別應用,人臉識別部分工作得很好,直到我想在視頻捕捉中添加兩行來將其分成3部分,這是我的代碼,我使用的是opencv 2.4.11和visual studio 2012:我寫了這部分插入圖像中的行,但對於視頻我什麼都沒有。在面部識別現場視頻捕捉上畫兩條線

Mat image; 
image = imread("C:\\Users\\user\\Desktop\\pfedocs\\ggg_opt.jpg", CV_LOAD_IMAGE_COLOR); 

    line(image,Point(25,0),Point(25,500),Scalar(0,255,0),3,2,0); 
line(image,Point(190,0),Point(190,500),Scalar(0,255,0),3,2,0); 
line(image,Point(355,0),Point(355,500),Scalar(0,255,0),3,2,0); 

任何人都可以幫助我嗎?

+0

請看[ask],並提供[mcve] ...重點**最小**。 – Miki

+0

我現在遇到的問題是隨着人臉檢測算法一直畫線,線不會顯示在框中 – deepmore

+1

所以真正的問題是:_「我怎樣才能在視頻上畫兩條線?」_ – Miki

回答

-1

我不明白「實時視頻捕獲」的任何內容。如果有一個捕獲文件(順便說一句,它不能被稱爲「活」),你可以讀取和迭代其幀。此外,如果你有一個捕獲設備(如攝像頭),您可以通過過下面的例子從設備讀取:

#include "opencv2/opencv.hpp" 
using namespace cv; 
int main(int, char**) 
{ 
    VideoCapture cap(0); // open the default camera 
    if(!cap.isOpened()) // check if we succeeded 
     return -1; 
    Mat edges; 
    namedWindow("edges",1); 
    for(;;) 
    { 
     Mat frame; 
     cap >> frame; // get a new frame from camera 
     cvtColor(frame, edges, COLOR_BGR2GRAY); 
     GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5); 
     Canny(edges, edges, 0, 30, 3); 
     imshow("edges", edges); 
     if(waitKey(30) >= 0) break; 
    } 
    // the camera will be deinitialized automatically in VideoCapture destructor 
    return 0; 
} 

退房VideoCapture類。

+0

我需要的是在我的視頻捕捉幀添加行,所以當我得到網絡攝像頭的視頻截圖,我把它分成3部分,謝謝你的回答 – deepmore