0

opencvでマット形式の画像を読み込んで表示しようとしています。コードは正常にコンパイルされますが、実行時にランタイム エラーが発生し、画像が表示されません。ここに私のコードがあります:

#include "stdafx.h"
#include<cv.h>
#include<highgui.h>
#include<iostream>
using namespace cv;
using namespace std;

void main()
{
    Mat Img;
    Img=imread("C:/Documents and Settings/image1.jpg");
    cvNamedWindow("Image",CV_WINDOW_AUTOSIZE);
    imshow( "Image", Img ); 
    cvWaitKey(0);
}

どこが間違っているのか教えてください。

4

1 に答える 1

0

ほとんどの場合、imread()失敗しています。関数の成功のチェックを開始しない限り、確実にわかります。これは、コーディング時に行うべき重要なことです。

失敗する理由はいくつかあります。

  • ファイルにアクセスする権限がありません。
  • パスが間違っています。

あなたの場合、それはおそらく最初です。コードを次のように変更します。

Mat Img;
Img = imread("C:\\Documents and Settings\\image1.jpg");
if (Img.empty()) {
    std::cout <<  "!!! Failed to open the file\n";
    return;
}

ファイルへのパスがどのように異なるかに注目してください。

于 2013-03-15T20:51:52.543 に答える