Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[OpenCV] Wyświetlanie obrazu

Ostatnio zmodyfikowano 2012-02-13 16:51
Autor Wiadomość
SeaMonster131
Temat założony przez niniejszego użytkownika
[OpenCV] Wyświetlanie obrazu
» 2012-02-05 15:45:14
Witam,
po prostu, kiedy chciałbym wyświetlić obraz z kamerki, aplikacja się wywala (Wysyłaj / Nie wysyłaj), kod wygląda tak:
C/C++
#include <cstdio>
using namespace std;

#include "opencv2/highgui/highgui.hpp"
using namespace cv;

VideoCapture camera;

const int FPS = 30;

int main( int argc, char * argv[] )
{
    camera.open( 0 );
    if( !camera.isOpened() )
    {
        printf( "Nie udalo sie polaczyc!\n" );
        getchar();
        return - 1;
    }
    else
    {
        printf( "Udalo sie polaczyc!\n" );
        camera.set( CV_CAP_PROP_FRAME_WIDTH, 640 );
        camera.set( CV_CAP_PROP_FRAME_HEIGHT, 480 );
       
        Mat inputImage;
        char key = 0;
        while( key != 'k' )
        {
            camera >> inputImage;
            imshow( "Camera Image", inputImage ); //!
           
            key = waitKey( 1000 / FPS );
        }
    }
    return 0;
}

Kiedy usunę
imshow( "Camera Image", inputImage );
 to aplikacja się nie wywala. Kamerka w innych aplikacja działa prawidłowo...Co może być przyczyną? :(

Wersja OpenCV to 2.3.1
P-50164
npHard
» 2012-02-05 22:12:01
Z tego co pamiętam to w OpenCV najpierw trzeba stworzyć okno. Są ku temu odpowiednie funkcji. Potem nazwę tego okna podajesz jako pierwszy parametr funkcji imshow. Ty podajesz "Camera Image" a nigdzie takiego okna nie tworzysz i zapewne dlatego się wywala.

Ale mogę się mylić bo OpenCV używałem jakiś rok temu.


Edit:
tutaj masz dokumentację
http://opencv.willowgarage.com/documentation/cpp/user_interface.html

Jest opis funkcji imshow a niżej jest też funkcja namedWindow i to chyba jej szukasz.
P-50175
SeaMonster131
Temat założony przez niniejszego użytkownika
» 2012-02-06 16:33:50
Niestety aplikacja dalej się wywala.. :(
P-50198
malan
» 2012-02-06 22:07:57
Spróbuj tak:
C/C++
char key = 0;
while( key != 'k' )
{
    Mat inputImage;
    camera >> inputImage;
    imshow( "Camera Image", inputImage );
   
    key = waitKey( 1000 / FPS );
}
P-50215
DejaVu
» 2012-02-06 22:15:54
1. Sprawdź kod z tutoriala czy działa
2. Jeżeli kod z tutoriala się sypie to prawdopodobnie masz inne pliki DLL niż liby, które linkujesz.
P-50217
SeaMonster131
Temat założony przez niniejszego użytkownika
» 2012-02-06 22:17:42
To jest właśnie kod z tutka :) Hm to zaraz zobaczę te liby i dll.
P-50219
SeaMonster131
Temat założony przez niniejszego użytkownika
» 2012-02-13 13:50:50
Pokombinowałem troche, i w pewnym sensie się udalo, ale dalej nie działa. Debugger pokazuje coś o pliku libopencv_highgui231.dll (opencv\build\x86\mingw\bin), więc wziąłem prosty przykład, z folderu opencv/common/x86 skopiowałem plik opencv_highgui231.dll zmieniłem jego nazwe dodając na początku "lib", i program się uruchomił:
C/C++
int main( int argc, char * argv[] )
{
    cvNamedWindow( "View", CV_WINDOW_AUTOSIZE );
    cvMoveWindow( "View", 10, 10 );
    cvWaitKey( 0 );
}

Natomiast, gdy już użyłem tego "mojego" kodu z wcześniejszego postu, to musiałem dodać jeszcze plik "libstdc++-6.dll" oraz "libopencv_core231.dll", przy czym zmienienie nazwy jakoś nie pomogło (wyskakiwał błąd, że nie znaleziono jakiejś tam procedury).
Tak więc hm.. Jak dla mnie to ten plik libopencv_highgui231.dll może być jakiś felerny czy coś.. -.- a Wy jak myślicie?
P-50650
DejaVu
» 2012-02-13 13:56:24
Pobierz OpenCV skompiluj go ze źródeł i problemów nie będzie :)
P-50652
« 1 » 2
  Strona 1 z 2 Następna strona