断言失败(size.width> 0& size.height> 0)Qt与OpenCV

时间:2017-02-14 19:49:24

标签: c++ qt opencv

我在使用OpenCV库在Qt Creator上显示图像时遇到问题。

我有一个程序,当按下按钮时显示图像。当我运行它时,它给了我

  

OpenCV错误:cv :: imshow中的断言失败(size.width> 0& size.height> 0),文件C:\ builds \ 2_4_PackSlave-win64-vc12-shared \ opencv \ modules \ highgui \ src \ window.cpp,第261行   该计划意外地完成了。

using namespace cv;

void MainWindow::on_start_clicked()
{

    Mat src = imread("C:/Users/Amr/Documents/untitled7/layout.jpeg",CV_WINDOW_AUTOSIZE);
    namedWindow("src",CV_WINDOW_AUTOSIZE);
    imshow("src",src);
    waitKey(0);
    destroyWindow("src");
}

但是当我尝试这个程序时它非常好用

using namespace cv;

void MainWindow::on_start_clicked()
{

     Mat src (500,500,CV_8UC3,Scalar(255,0,0));
    namedWindow("src",CV_WINDOW_AUTOSIZE);
    imshow("src",src);
    waitKey(0);
    destroyWindow("src");
}

我觉得问题出现在目录中,但我不知道它是什么。我尝试将/更改为\//,但仍然收到此错误。

1 个答案:

答案 0 :(得分:2)

假设路径正确,使用CV_WINDOW_AUTOSIZE没有意义。使用IMREAD_XXX

Mat src = imread("C:/Users/Amr/Documents/untitled7/layout.jpeg", IMREAD_COLOR);

然而,仔细检查路径,并记住“image.jpeg”与“image.jpg”不同。并且......你确定“无标题7”是正确的吗?