MFC + OpenCv + OpenCv Mousehandler = ???



  • Hallo,

    ich habe mir eine Anwendung geschrieben, welche grundlegend aus einem Dialog und einem zusätzlichem Fenster (zum Darstellen von Bildern) besteht. Dieses Fenster erzeuge ich durch die entsprechende OpenCv Funktion. Jetzt brauch ich noch die Möglichkeit in diesem Fenster ein Pixel markieren zu können.

    Dafür würde ich wieder gern die OpenCv Funktionalität nutzen. Hab nur leider keine Ahnung, wie ich das anstellen soll. Da das Fenster durch eine OpenCv Funktion generiert wird, weiß ich nicht wie/wo ich den entsprechenden Handler finde bzw. definieren kann.

    // Bild laden und darstellen über OpenCV:
    IplImage* img = cvLoadImage("C:\\tmp\\bild.bmp");
    cvNamedWindow("Bild 1", CV_WINDOW_AUTOSIZE);
    

    Da ich keine Fensterklasse habe, kann ich den entsprechenden Mouse handler nicht in der herkömmlichen Art und Weise schreiben (ich weiß zumindest nicht wie).

    MfcFenster::OnLButtonDown(UINT nFlags, CPoint point)
    {
       // geht nicht da ich keine Fensterklasse habe,
    
    }
    

    Es steht außer Frage, dass ein OpenCv Wrapper hier die bessere Möglichkeit darstellt (oder einzig seriöse 😃 ). Gibt es dennoch einen Weg, wie ich zu einem Mousehandler komme ?



  • Hallo,

    ich versuche mich in die MFC einzuarbeiten, komme aber leider nicht so recht vom Fleck. Ich möchte aus einem Dialog heraus ein neues Fenster erzeugen und darin ein Bild darstellen. Für Tipps wäre ich echt dankbar !

    ich habe meiner Anwendung eine Klasse MyView zugefügt:

    //myview.h///////////////////////////////////////////////////
    class MyView: public CView
    {
    private:
       IplImage* image;
    };
    
    //myview.cpp///////////////////////////////////////////////////
    MyView::OnCreate()
    {
       image = cvLoadImage("C:\\bilder\\bild1.jpg");
    
       // Sollte das Bild hier schon dargestellt werden, oder erst in der
       // OnUpdate() Methode?
    }
    
    MyView::OnUpdate()
    {
      //?
    }
    

    In einem Dialog möchte ich durch klicken auf einen Button ein Bild darstellen.

    //mydialog.cpp///////////////////////////////////////////////
    {
       // Mit welcher Methode kann ich hier ein CMyView Objekt erzeugen?
       CDialog::OnOK();
    }
    

Anmelden zum Antworten