imshow 関数を使用していくつかの簡単なプログラムを作成しました。数回はうまくいきました。処理前と処理後の 2 枚の写真を表示しようとしました。最初は問題なく動作しましたが、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;
}