OpenCV Bild darstellen



  • Ich nehme mit einer Camera ein Bild auf, übergebe es an einen anderen Thread, der ein Fenster aufmachen und es auf dem Bildschirm darstellen soll. Das ganze soll natürlich kontinuierlich ablaufen, sodass ca. 40 Bilder pro Sekunde gemacht werden.

    Mein ViewerModul sieht so aus:

    #include "ViewerModul.hpp"
    #include "../main.hpp"
    #include "../Daten/BildDaten.hpp"
    #include <opencv/cv.h>
    #include <opencv/highgui.h>
    
    void ViewerModul::arbeiten() 
    {
    
      ...
    
      // create a window
      cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE); 
      cvMoveWindow("mainWin", 100, 100);
    
      while(laufen)
      {
    
      // aus s hole ich das Bild vom anderen Thread
      IplImage* img = s->leseImg();
    
      // show the image
      cvShowImage("mainWin", img );
    
      // wait for a key
      //cvWaitKey(0);
    
      // release the image
      //cvReleaseImage(&img );
    
      ...
      }
    
    };
    

    Die Sache läuft wunderbar, aber ich sehe kein Fenster! Erst wenn ich cvWaitKey(0) einbaue dann erscheint das Fenster. Aber natürlich muss ich dann 40 mal pro Sekunde einen Knopf drücken damit das nächste erscheint 😞

    Was mache ich falsch?



  • Ich hab eine Lösung gefunden! ein cvWaitKey(10) hat geholfen!

    http://www.comp.leeds.ac.uk/vision/opencv/gui.html



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum Spiele-/Grafikprogrammierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten