Opencv讀取USB網路攝像頭無法顯示,影象為空,顯示黑色?
阿新 • • 發佈:2018-11-20
利用Opencv讀取電腦的攝像頭,程式碼如下,一直無法正常執行,搜尋網上的解決方案,均未解決。程式碼語法沒有錯誤,攝像頭也可以開啟,但是就是無法讀取當前幀影象
#include <opencv.hpp> using namespace cv; int main() { VideoCapture capture(0); if (!capture.isOpened()) return -1; Mat frame; while (1) { capture >> frame; imshow("讀取視訊", frame); waitKey(30); } return 0; }
由於一直未找到原因,在網上搜索到老版本的程式碼如下,便可以成功讀取並顯示攝像頭的畫面。
#include <opencv.hpp> using namespace cv; int main(int argc, char** argv) { cvNamedWindow("視訊"); CvCapture* capture = cvCreateCameraCapture(0); IplImage* frame; while (1) { frame = cvQueryFrame(capture); cvResizeWindow("視訊", 640, 480); cvShowImage("視訊", frame); cvWaitKey(50); } cvReleaseCapture(&capture); cvDestroyWindow("視訊"); return 0; }
大致猜測無法獲取當前幀的原因是攝像頭和opencv版本之間的相容問題。