m0_52580653 2022-01-12 07:14 采纳率: 100%
浏览 79
已结题

关于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);

    }
    
}

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

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

  • 写回答

2条回答 默认 最新

  • 爱晚乏客游 2022-01-12 09:09
    关注

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

    while (true) {
            cap >> fram;
            if(fram.date)
                imshow("output", fram);
            if (waitKey(2)==27) break; //esc退出
        }
        cap.release();
        destroyAllWindows();
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月20日
  • 已采纳回答 1月12日
  • 创建了问题 1月12日

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同