2013-12-13 2 views
12

내가 OpenCV의 새로운 오전에 이미지를 렌더링하지 imshow, 최근 OpenCV의 2.4.7의 미리 컴파일 된 버전을 얻어 성공적으로 2010 년OpenCV의 화면

은 분명히 라이브러리가 작동하는 것 같다 비주얼 스튜디오와 통합 할 수 있었다있다 그래도 imshow를 사용하여 이미지를 표시하려고하면 창을 표시하지만 이미지가 표시되지 않습니다.

{ 
    cv::Mat image = cv::imread("F:/office_Renzym/test3.jpg",CV_LOAD_IMAGE_UNCHANGED); 

    if(image.empty()) 
    { 
     cout<<"image not loaded"; 
    } 
    else 
    { 
     cv::namedWindow("test", CV_WINDOW_AUTOSIZE); 
     cv::imshow("test",image); 
    } 
} 

도움을 주시면 감사하겠습니다.

+0

당신이'imshow' 후 [waitKey] (http://docs.opencv.org/modules/highgui/doc/user_interface.html#waitkey)를 호출해야합니까? –

+0

질문이있는 이미지가 포함되었을 것입니다. 그러나 최근에 여기에 자신을 등록 했으므로 아직 이미지를 포함 할 수 없습니다. – Usama

+0

예 waitKey를 시도했습니다. 성공하지 못했습니다. – Usama

답변

17

당신이 필요합니다

cv::waitKey(0); 

대신 :

system("pause"); 

후자는 그냥 작동하지 않습니다. OpenCV는 메시지를 표시하고 업데이트하기 위해 메시지를 펌핑해야하며 그 내부에 waitKey 기능이 있습니다. , 당신은 아마이 작업을 수행 할 필요가 코드에 있도록하는 HighGUI 창이 열려있는 경우

문서가 말한대로

, waitKey에만 작동 : 경우

cv::Mat image = cv::imread("F:/office_Renzym/test3.jpg",CV_LOAD_IMAGE_UNCHANGED); 

if(image.empty()) 
{ 
    cout<<"image not loaded"; 
} 
else 
{ 
    cv::namedWindow("test", CV_WINDOW_AUTOSIZE); 
    cv::imshow("test",image); 
    cv::waitKey(0); 
} 

이미지 형식에 문제가, 당신 다음과 같이로드 시도 할 수 있습니다 :

cv::Mat image = cv::imread("F:/office_Renzym/test3.jpg",CV_LOAD_IMAGE_COLOR); 
+3

감사합니다. 내 문제를 해결해 주셔서 고맙습니다. – Usama

1

은 내가 cv::namedWindow 문을 제거하고, cv:imshow 문 뒤에

cv::waitKey(); 

를 추가하는 것이 좋습니다. 창의 크기가 올바른지 여부를 확인할 수도 있습니다.

+0

아직 완료하지 못했습니다. – Usama

+0

위의 대답에서 문제는 이미지 형식으로 된 것 같습니다. – Totoro

+0

아니, 처음에는 waitKey (0)를 사용하지 않았습니다 – Usama