gpt4 book ai didi

c++ - 调试断言失败(无符号)(c+1) <= 256(在 VideoCapture::open [Qt Creator] 中)

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:27:07 26 4
gpt4 key购买 nike

我一直在尝试在 QtCreator 中使用 cv::VideoCapture::open("< path to video file >")(已添加 opencv)。即使该程序在“ Debug模式”(调试构建)中运行时没有错误,它也会在“ Release模式”(发布构建)中给出以下运行时错误。

Debug Assertion Failed File: f:/dd/vctools/crt_bld/self_x86/src/isctype.c Line: 56 Expression: (unsigned)(c+1) <= 256

这是一个简单的程序,仅使用 cv::VideoCapture::open() [用于测试目的]

下面是.pro文件

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = untitled
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui

INCLUDEPATH += C:/C/opencv/build/include
INCLUDEPATH += C:/C/opencv/build/include/opencv

LIBS += C:/C/opencv/build/x86/vc10/lib/opencv_highgui240d.lib
LIBS += C:/C/opencv/build/x86/vc10/lib/opencv_highgui240.lib


LIBS += C:/C/opencv/build/x86/vc10/bin/opencv_highgui240d.dll
LIBS += C:/C/opencv/build/x86/vc10/bin/opencv_highgui240.dll

下面是头文件

#include <QMainWindow>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();

private:
Ui::MainWindow *ui;
cv::VideoCapture vcap;
};

下面是.cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
vcap.open("C:/Users/ANURUDDHA/pedestrians/ThreePastShop2cor.mpg");
}

MainWindow::~MainWindow()
{
delete ui;
}

当我将 int 作为参数传递给 cv::VideoCapture::open() [例如:vcap.open(0)] 时,它在调试和发布时都没有错误地运行成功构建并打开网络摄像头。只有当我将字符串传递给参数时才会出现问题。

有人请阐明这一点。非常感谢。

最佳答案

看起来您正在链接库的调试版本和发布版本(两次?)。这在过去给我带来了麻烦。尝试仅使用 LIBS += C:/C/opencv/build/x86/vc10/bin/opencv_highgui240.dll 用于发布版本和 LIBS += C:/C/opencv/build/x86/vc10/bin/opencv_highgui240d.dll 用于调试构建。

此外,0 与 NULL 相同。在断言失败之前,库可能会中止它正在做的任何事情(无论是在调试中还是在发布中)。您不应该在 Release模式下断言失败,但事实告诉我调试库已加载到您为 Release模式编译的程序中。

编辑:

看起来有人已经在这里回答了你: http://answers.opencv.org/question/15838/videocaptureopenqt-creatordebug-assertion-failed/

关于c++ - 调试断言失败(无符号)(c+1) <= 256(在 VideoCapture::open [Qt Creator] 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17576076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com