2

我使用 imshow 函数编写了一些简单的程序。它工作得很好几次。我试图在处理之前和之后查看两张图片。第一次它运行良好,但第二次它使我的应用程序崩溃。

现在每次都显示崩溃应用程序。

如何解决?

#include <iostream>
#include <iostream>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace std;
using namespace cv;

int main()
{
    Mat image, gray_image;
    string file_path;

    cout << "Input file path: ";
    cin >> file_path;

    image = imread(file_path, CV_LOAD_IMAGE_UNCHANGED);
    if (image.data==NULL)
        {
            cout << "No image found!";
            return 1;
        }

    cvtColor(image, gray_image, CV_BGR2GRAY);

    namedWindow("Orig", CV_WINDOW_AUTOSIZE);
    namedWindow("Gray", CV_WINDOW_AUTOSIZE);

    imshow("Orig", image);
    imshow("Gray", gray_image);

    cout << "Output file path: ";
    cin >> file_path;

    imwrite(file_path, gray_image);

    return 0;
}
4

1 回答 1

9

你需要waitKey

看看OpenCV 中的 waitKey (30) 是什么意思?

于 2013-04-14T01:14:57.383 回答