我已經通過firewire連接了一個cam並嘗試使用opencv訪問它。相機在香菜中檢測到並能夠獲得視頻流。下面是我的代碼使用Opencv在linux上檢測不到firewire攝像頭
#include "/home/iiith/opencv-2.4.9/include/opencv/cv.h"
#include "/home/iiith/opencv-2.4.9/include/opencv/highgui.h"
#include "cxcore.h"
#include <iostream>
using namespace cv;
using namespace std;
int main(int,char**)
{
VideoCapture cap(0);
if(!cap.isOpened())
cout<<"Camera not detected"<<endl;
while(1)
{
Mat frame;
namedWindow("display",1);
cap >> frame;
imshow("display",frame);
waitKey(0);
}
}
當我運行這段代碼,視頻從網絡攝像頭,而不是我的火線凸輪流。我在朋友的系統中嘗試了相同的代碼,並檢測到火線凸輪。我使用不同的命令測試設置,如testlibraw,lsmod,它們都是一樣的。甚至Opencv版本2.4.9,Ubuntu 12.04都是一樣的。這真的很奇怪,並且在這2天。任何人都可以告訴我有什麼區別?如何獲得在opencv中檢測到的外部凸輪?提前致謝。
注意:這與設置默認凸輪有什麼關係嗎?謝謝。
更新1:VideoCapture cap(1)給出以下錯誤 HIGHGUI錯誤:V4L:索引1不正確!
這是否意味着相機無法識別?
無關,但請*不要*使用絕對路徑包括,也不要使用過時的OpenCV c-api標題,但是「opencv2/highgui/highgui.hpp」 – berak 2014-09-27 06:49:15
'視頻捕捉帽(0);'表示默認攝像頭,'視頻捕捉帽(1);'應該是另一個攝像頭,這是什麼? – Chernobyl 2014-09-27 06:53:27
@berak謝謝。你無關的意思是什麼? – 2014-09-27 06:53:45