2012-08-13 7 views
0

Windows 7 64 비트에서 CodeBlocks를 사용하고 있으며 기본 C/C++ 컴파일러로 MinGw를 사용하고 있습니다.Windows 7에서 opencv 2.4 오류가 발생했습니다.

img http://oi49.tinypic.com/xc9hy8.jpg

img2 http://i48.tinypic.com/pwt8j.png

샘플 코드 :

#include "cv.h" 
#include "highgui.h" 

int main(int argc, char** argv) { 
    IplImage* img = cvLoadImage(argv[1]); 
    cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE); 
    cvShowImage("Example1", img); 
    cvWaitKey(0); 
    cvReleaseImage(&img); 
    cvDestroyWindow("Example1"); 
} 

며칠 전 나는 오류의 많은 투쟁 후, 나는이 같은 unsolveable 오류, OpenCV의를 사용해야합니다

내 연결된 & 디렉토리 설정이 맞다고 생각합니다. 그래서 저를 도와주세요 :) 난 당신이 코드와 이미지의 올바른 모든 것을하고 있다는 것을 가정 :(

+1

당신은 확인해야 이미지를 표시하기 전에 cvLoadImage가 성공했는지 여부 –

+0

나는 cvLoadImage ("lena.jpg")로 변경했습니다; 하지만 여전히 오류. 내 main.exe와 동일한 폴더에 lena.jpg를 넣습니다. – psuedobot

+0

cvLoadImage의 결과를 명시 적으로 확인해야합니다. 'if (img == NULL) {perror ("cvLoadImage failed"); 출구 (1); }' –

답변

0

을 포기에 대한 생각,이 때문에 호환되지 않는 OpenCV의 바이너리에 문제가 될 수 있습니다.

를하시기 바랍니다 a similar installation을보고 컴파일하여 문제가 없는지 확인하십시오. 설치시 비슷한 문제가 발생하여 바이너리를 다시 컴파일하면 문제가 해결되었습니다.

+0

32 비트 또는 64 비트 용 링크입니까? 32 비트 성공했지만 64 비트 용 문제가 내 프로그램 (.exe)를 실행해야 할 때 – psuedobot

+0

이 링크는 32 비트 opencv 바이너리를 컴파일하는 것이지만 항상 Windows의 64 비트 버전에서 사용했습니다. – masad

+0

시도했지만 CMake를 사용할 때 오류가 발생했습니다. 구성 할 때 MSYS가 있습니까? – psuedobot

0

문제는 이미지를로드 할 때 가장 큰 문제 일 수 있습니다. cvLoadImage()의 반품을 확인하는 경우 특정 :

IplImage* img = cvLoadImage(argv[1]); 
if (!img) 
{ 
    printf("!!! cvLoadImage failed\n"); 
} 

이미지 형식이 지원되지 않거나 이미지가 지정된 위치에없는 경우 함수가 실패합니다.

당신의 응용 프로그램은 명령 줄에서 전달 된 파일을로드 할 것으로 예상, 그래서 당신은 더 나은 귀하의 응용 프로그램을 실행합니다 Main.exe C:\some_img.png

또한 코드에서 파일 이름을 하드 코딩 할 수 있습니다

IplImage* img = cvLoadImage("C:\\some_img.png"); 
if (!img) 
{ 
    printf("!!! cvLoadImage failed\n"); 
} 
관련 문제