私は最近、Visual Studio 2015 を使用して OpenCV を操作し始めましたが (チュートリアルに従って)、これを機能させることができません。したがって、問題は、ファイルの場所を相対的に指定し (「imageName.extens」を引数として使用するだけ)、VS からプログラムを実行すると、image.empty()
常にtrue
. *.jpg、*.bmp、*.png を試しましたが、同じです。
場所を文字列に保持して正確に指定すると、ウィンドウが表示されてクラッシュします。cmd 経由でアプリケーションを実行すると、同じことが起こります。デバッグ ライブラリとリリース ライブラリを混在させたときにこの問題が発生したことを読みましたimage.empty()
が、そうではありません。適切なプロパティ シートでデバッグおよびリリース用のライブラリを指定しました。
これ以上のアイデアはありません。何日もそれと戦ってきました。助けていただければ幸いです。2.4 から 3.1 にアップグレードしたことさえありました。そうではありませんでした。よろしくお願いします。
コードは次のとおりです。
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
if (argc != 2)
{
cout << " Usage: display_image ImageToLoadAndDisplay" << endl;
return -1;
}
else if (argc > 1) {
cout << argv[1] << endl;
}
Mat image;
image = imread(argv[1], CV_LOAD_IMAGE_COLOR); // Read the file IMREAD_COLOR
if (image.empty()) // Check for invalid input
{
cout << "Could not open or find the image" << std::endl;
return -1;
}
namedWindow("Display window", WINDOW_NORMAL); // Create a window for display.
imshow("Display window", image); // Show our image inside it.
//waitKey(0); // Wait for a keystroke in the window - doesnt work
getchar();
getchar();
return 0;
}