2013-09-22 50 views
0

我正在尋找一種使用OpenCv的videoinput的簡單方法,因爲我從網上讀了很多素材,但仍然很困惑。使用OpenCv的videoinput

我已經讀過2.3版本,它是OpenCv的一部分。 這是什麼意思?

我包含「highgui.hpp」並聲明爲「videoInput VI」(HAVE_DSHOW HAVE_VIDEOINPUT已定義),但未識別錯誤'videoInput'。

然後我收錄了 「videoinput.h」 文件我在網絡上找到的,我得到了 「錯誤LNK2001:simbolo esterno 「市民:__thiscall videoInput ::〜videoInput(無效)」(?? 1videoInput @@ QAE @ XZ)非risolto「

我是否也下載過庫? 我認爲它應該更簡單,因爲它是「OpenCv的一部分」。

+0

如果你無法解釋爲什麼* *您想直接使用DSHOW videoinput代碼,你可能沒有理由這樣做。看下面的答案,改用VideCapture類。 – berak

回答

0

如果您想讀取和處理視頻幀,我建議您使用VideoCapture類。

這裏是一個邊緣檢測的例子:

#include "opencv2/opencv.hpp" 

using namespace cv; 

int main(int, char**) 
{ 
    VideoCapture cap("videofilename"); // open the video file 
    if(!cap.isOpened()) // check if we succeeded 
     return -1; 

    Mat edges; 
    namedWindow("edges",1); 
    for(;;) 
    { 
     Mat frame; 
     cap >> frame; // get a new frame from the video 
     cvtColor(frame, edges, CV_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; 
    } 
    return 0; 
} 
+1

我的目標不僅僅是從相機中檢索相框,而是設置網絡攝像頭的屬性。我讀過(並經歷過)VideoCapture並不總是有效的。 –