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

关于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日

悬赏问题

  • ¥50 wordpress项目注册报失败刷新后其实是成功状态,请求排查原因
  • ¥20 linxu服务器僵尸进程不释放,代码如何修改?
  • ¥15 pycharm激活不成功
  • ¥40 如果update 一个列名为参数的value
  • ¥15 基于51单片机的水位检测系统设计中LCD1602一直不显示
  • ¥15 OCS2安装出现问题,请大家给点意见
  • ¥15 ros小车启动launch文件报错
  • ¥15 vs2015到期想登陆但是登陆不上
  • ¥15 IPQ5018制作烧录固件,boot运行失败(操作系统-linux)(相关搜索:操作系统)(相关搜索:操作系统)
  • ¥20 icefall在librispeech基础上加入个人数据集