我在Visual Studio 2015中使用OpenCV版本3.2.0,並且能夠訪問我的攝像頭,直到今天上午我突然開始工作時爲止。我無法弄清楚這個問題來自哪裏。我現在得到:OpenCV - 網絡攝像頭imshow不顯示實時動態,灰色屏幕代替
它不拋出任何錯誤,但它也不會通過網絡攝像頭
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
VideoCapture cap;
cap.open(0);
if (!cap.isOpened())
{
printf("--(!)Error opening video capture\n");
return -3;
}
Mat image;
namedWindow("Image", CV_WINDOW_AUTOSIZE);
while (1)
{
cap.read(image);
imshow("Image", image);
waitKey(30);
}
return 0;
}
有沒有人遇到過這種錯誤顯示任何輸入?
編輯: 事情我已經看過:
我的網絡,我有東西像谷歌視頻羣聊工作,所以我不認爲這是一個攝像頭的問題。
此外,我卸載了Visual Studio 2015並安裝了Visual Studio 2017,以查看重新安裝是否可以正常工作,並且仍然可以得到相同的結果。
編輯:
我收到錯誤<information not available, no symboles loaded for opencv_world320d.dll>
當我創建一個新VideoCapture
對象。我很確定我已經正確地包含了所有內容。
配置屬性 - > C/C++ - >附加包含目錄: $(OPENCV_BUILD)\include
配置屬性 - >鏈接 - >一般: $(OPENCV_BUILD)\x64\vc14\lib
配置屬性 - >鏈接 - >輸入: opencv_world320d.lib
試一下:'Mat frame; cap >> frame;'在while循環中,並在此之前移除'Mat image'。 – eyllanesc
@eyllanesc陰性。按照您的建議,我使用了'image'而不是'frame' – luckyging3r
Mat對象的創建必須在循環中。 – eyllanesc