我有一个非常奇怪的问题。当我从Visual Studio运行C ++应用程序时,VideoCapture
既不会打开,也不会打开网络摄像头或视频文件,如果是网络摄像头,则会出现以下错误:
WinRT源错误-0xC00D36B3:'提供的流编号无效。'
之后
Microsoft C ++异常:内存位置0x000000D9B66FCBB0出现_com_error。 Microsoft C ++异常:内存位置0x000000D9B66FCAA0中的_com_error。 Microsoft C ++异常:内存位置0x000000D9B66FEFD0处的cv :: Exception。 Microsoft C ++异常:内存位置0x000000D9B66FEFD0处的cv :: Exception。
但是当我从VS外部运行该应用程序时-一切正常。我使用的是OpenCV v4.0.0
答案 0 :(得分:0)
要诊断您的问题,请先尝试以下操作并给我反馈。
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
VideoCapture cap(0); // open the default camera
if (!cap.isOpened()) // check if we succeeded
return -1;
Mat edges;
Mat frame;
namedWindow("edges", WINDOW_NORMAL);
while (true)
{
cap >> frame; // get a new frame from camera
cvtColor(frame, edges, COLOR_RGB2GRAY);
GaussianBlur(edges, edges, Size(7, 7), 1.5, 1.5);
Canny(edges, edges, 0, 50, 3);
imshow("edges", edges);
if (waitKey(30) >= 0) break;
}
// the camera will be deinitialized automatically in VideoCapture destructor
}
所需的库:
opencv_core401.lib
opencv_imgproc401.lib
opencv_videoio401.lib
opencv_highgui401.lib