我試圖用OpenCV 3.0捕獲視頻幀,但相機設備拒絕打開。當我打開設備0時,VideoCapture :: isOpened()返回false。我有一個iSight相機,它永遠不會打開。OpenCV VideoCapture無法在OSX上打開相機
我從命令行編譯而不是從XCode編譯。
我使用從逐字opencv.org的例子:
#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
std::cout << "no capture device :(\n";
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;
}
我的CMakeLists.txt是:
cmake_minimum_required(VERSION 2.8)
project(ocvtest)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(cap cap.cpp)
target_link_libraries(cap ${OpenCV_LIBS})
我不知道如何進一步解決,似乎OpenCV的報價沒有線索 - 我不知道我可以查詢任何錯誤消息,甚至沒有查詢相機狀態或可用設備的方法。我甚至不確定OpenCV是否在我的機器上正確構建,以支持相機捕獲,並且我無法找到答案。 OpenCV只是默默地忽略了我打開攝像機的請求,並且據我所知,我期望讀者瞭解OpenCV是如何耿耿於懷的。
如何解決此問題?什麼會導致連接的相機無法打開?
你是怎麼安裝'OpenCV'的?你用過「自制軟件」嗎?如果是,哪個版本和哪些選項? –
@MarkSetchell,它是從源代碼下載並構建的。所有的選項都是默認的,除了我設置的一些額外的-WITH標誌(例如qt)。 – trbabb