2013-12-13 20 views
12

Jestem nowym OpenCV, które niedawno uzyskały skompilowane wersje OpenCV 2.4.7 i był w stanie skutecznie zintegrować go z Visual Studio 2010.OpenCV nie imshow renderowania obrazu na ekranie

Podobno biblioteka wydaje się działać dobrze, ale kiedy próbuję wyświetlić obraz przy użyciu imshow, wyświetla on okno, ale nie wyświetla w nim obrazu.

{ 
    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); 
    } 
} 

Każda pomoc będzie bardzo ceniona.

+0

Czy masz wywołanie [waitKey] (http://docs.opencv.org/modules/highgui/doc/user_interface.html#waitkey) po 'imshow'? –

+0

Mogłabym dołączyć obraz z pytaniem, ale jak ostatnio się tu zarejestrowałem, więc nie mogę jeszcze dołączyć obrazów – Usama

+0

tak, próbowałem czekaćKey wciąż nie powodzenie – Usama

Odpowiedz

17

Musisz mieć:

cv::waitKey(0); 

zamiast:

system("pause"); 

Ten ostatni po prostu nie działa. OpenCV musi pompować komunikaty, aby okno było wyświetlane i aktualizowane, a wewnątrz funkcji waitKey znajduje się cały mechanizm do tego.

Jako dokumentacja mówi, waitKey działa tylko jeśli masz okno HighGUI otwarte, więc w kodzie, prawdopodobnie trzeba to zrobić:

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); 
} 

W przypadku istnieje problem z formatem obrazu, ty może spróbuj załadować tak:

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

Nie mogę ci więcej podziękować, dziękuję bardzo rozwiązałeś mój problem – Usama

1

Sugeruję usunięcie komunikatu cv::namedWindow i dodanie

cv::waitKey(); 

po oświadczeniu cv:imshow. Możesz również sprawdzić, czy wymiary okna są poprawne.

+0

zrobiłem, jak wspomniałeś, wciąż nie ma sukcesu – Usama

+0

Z powyższej odpowiedzi, problem wydaje się być w formacie obrazu. – Totoro

+0

nie, nie, nie używałem waitKey (0) początkowo – Usama

Powiązane problemy