关于openCV的问题,请问该如何解决?

0x00007FFD5443478C 处(位于 OpenCVCourse1.exe 中)有未经处理的异常: Microsoft C++ 异常: cv::Exception,位于内存位置 0x000000303492E230 处。

img

点击调试的时候,刚开始几秒钟是可以正常播放视频的,但是过了几秒钟之后,就会显示成如上这样;

而我点击运行的时候(Ctrl + F5);也是可以播放,但是过程中关闭不了,并且一段时间之后出现如下图这样的弹窗:

img

#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgcodecs.hpp>
#include <iostream>

using namespace std;
using namespace cv;


////////////  图片 ////////////
//void main()
//{
//    //我们的路径将是一个字符串
//    string path = "Resources/test.png";
//    
//    //导入  Mat是由openCV引入的矩阵数据类型 处理所有图像
//    Mat img = imread(path);
//    imshow("Img", img);
//
//    //由于没有延迟,会自动关闭
//    waitKey(0);
//
//}

////////////  视频 ////////////
void main()
{
    string path = "D:\\openCVcode\\OpenCVCourse1\\Resources\\test_video.mp4";
    //视频捕获对象
    VideoCapture cap(path);        
    Mat img;
    
    
    //由于视频是一系列的图像,所以需要遍历所有图像或所有帧一一捕获,所以使用while循环
    while (true)
    {
        cap.read(img);
        
        imshow("Image", img);

        waitKey(1);

    }
    
}

代码如上(在运行图片那一块的代码时,没有出现问题,视频部分的代码中,按照我在网上搜索的,将路径改为绝对路径以及双斜杠,才可以运行,但会存在上述问题)

请问各位,这样的问题该如何解决呢?

imshow之前先判断下图片有没有问题

while (true) {
        cap >> fram;
        if(fram.date)
            imshow("output", fram);
        if (waitKey(2)==27) break; //esc退出
    }
    cap.release();
    destroyAllWindows();


给img初始化一下试试