2013-03-15 2 views
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); 
} 

사람이 말해 주시겠습니까 어디 잘못 갈거야?

+0

오류는 무엇이라고 말합니까? imread에 주어진 경로에 유효한 이미지가 있습니까? – Barshan

+0

"응용 프로그램이 런타임에 비정상적인 방법으로 종료되도록 요청했습니다"라는 "디버그 오류"입니다. 창이 열리지 만 이미지는 표시되지 않습니다. @Barshan Das –

+0

그리고 openCV를 처음 접했으니 한 가지 더 묻고 싶습니다. 그래서 어떤 데이터 형식이 이미지 처리에 더 효과적인지 알려주어 초점을 맞추도록하겠습니다. .. @ Barshan Das –

답변

0

아마도 imread()이 실패합니다. 코드를 작성할 때해야 할 중요한 일과 같은 기능의 성공 여부를 확인하기 전에는 알 수 있습니다. 당신은 파일에 액세스 할 수있는 권한이 없습니다

  • :

    은 실패 할 수 있습니다 이유는 몇 가지 이유가있다.

  • 경로가 잘못되었습니다.

귀하의 경우에는 아마도 첫 번째 일 것입니다. 따라서 코드를 다음으로 변경하십시오.

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

및 경로가 다른 파일인지 확인하십시오.

+0

문제는 "imread()"!!!와 같이 경로를 제공하는 두 가지 방법을 모두 시도했지만 이미지가 읽히지 않습니다! 그리고 왜 그런 일이 일어나고 있는지 알지 못합니다. 당신이 말했듯이 "파일을 열지 못했습니다"라고 표시됩니다 @ karlphillip –

+0

파일 앞에 사용자 이름이 있어야합니다. 경로가 존재하고 파일에 대한 액세스 권한이 있는지 확인하십시오. – karlphillip

관련 문제