【问题标题】:cvShowImage makes the system to throw exceptionscvShowImage 使系统抛出异常
【发布时间】:2018-11-21 15:41:09
【问题描述】:

我有一个使用 cvopen 库的 C 语言代码。 这是代码:

    #include <stdio.h>
#include <opencv2\highgui\highgui_c.h>


int main(void)
{
    int i;
    cvNamedWindow("Display window", CV_WINDOW_AUTOSIZE); //create a window
                                                         //create an image
    IplImage* image = cvLoadImage("C:\\Users\\magshimim\\Desktop\\Mummy.png", 1);
    if (!image)//The image is empty.
    {
        printf("could not open image\n");
    }
    else
    {
        cvShowImage("Display window", image);
        cvWaitKey(0);
        system("pause");
        cvReleaseImage(&image);
    }

    getchar();
    return 0;
}

在第 17 行 "cvShowImage("显示窗口", image);"系统抛出异常:

在 Q4.exe 中的 0xAD76406A 处引发异常:0xC0000008:指定了无效句柄

cvopen 包没问题,其他功能也可以。但是这段代码(适用于其他计算机)每次都会崩溃。 我该如何解决这个问题?

【问题讨论】:

    标签: c opencv opencv3.0


    【解决方案1】:

    cvShowImage 是 OpenCV 中旧的 C 风格命名约定的一部分。这个旧约定已被完全弃用,并且与 OpenCV 3.0 及更高版本不兼容。

    尝试使用 imshow 代替 cvShowImage imshow("显示窗口", image);

    【讨论】:

    • 谢谢!问题实际上出在我试图打开的图像中。 cvShowImage 使用 JPG 而不是 PNG。
    猜你喜欢
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多