Parameter einer Klasse ändern. mit Vererbung?



  • freekickchamp schrieb:

    Genau, sobald ich Parameter eintrage, also zum Beispiel:

    ORB orb(3,2, usw) und wenn ich dann übersetze, gibt es einen Fehler.

    Aha. Steht da wie im Film groß rot blinkend "ERROR" oder gibts vielleicht doch eine Fehlermeldung?

    Mein Tipp ist, dass du orb als Membervariable deklarieren willst. Dann halte dich an den Tipp von Th69 (und lern endlich mal das kleine Einmaleins von C++ ...)



  • Ok, ich werde es mal versuchen. Wobei ich bisher ohne eine selbst deklarierte KLasse ausgekommen bin. Aber dankeschön für die HInweise 🙂

    Folgende erste Fehlermeldung kommt dann:

    warning C4584: 'demo_orb' : base-class 'cv::Feature2D' is already a base-class of 'cv::ORB'

    Was ist denn das kleine 1x1 von C++?



  • freekickchamp schrieb:

    Ok, ich werde es mal versuchen. Wobei ich bisher ohne eine selbst deklarierte KLasse ausgekommen bin.

    Dann stimmt es vielleicht doch nicht? Schwer zu sagen, ich arbeite hier nur per Glaskugel.

    Folgende erste Fehlermeldung kommt dann:

    warning C4584: 'demo_orb' : base-class 'cv::Feature2D' is already a base-class of 'cv::ORB'

    Das ist erstmal nur eine Warnung, kein Fehler. Das scheint sich aber auf Innereien von OpenCV zu beziehen, nicht auf deinen Code.



  • Also bisher habe ich einen solchen Ablauf:

    Die Main macht irgendwas und ruft eine func auf.

    Und die sieht bei mir bisher so aus:

    void func(image &image) {
        Mat img = imread(image.ppm, CV_LOAD_IMAGE_GRAYSCALE);
    	[b]ORB orb;[/b]
        vector<KeyPoint> key_points,key_points2;
        Mat descriptors,descriptors2;
    
    .
    .
    .
    

    Aber ich versuche jetzt den Hinweis von Th69 umzusetzen, denn hier geht es eben nicht, dass ich

    ORB orb(x,y,..);
    

    aufrufe.
    Aber dankeschön erstmal.

    Und ja, ich muss noch einiges lernen, aber das lernt man am besten durch selber programmieren und Hilfestellungen.



  • Ich seh immer noch keine Fehlermeldung...



  • warning C4584: 'demo_orb' : base-class 'cv::Feature2D' is already a base-class of 'cv::ORB'
    1>          c:\opencv\build\include\opencv2\features2d\features2d.hpp(249) : see declaration of 'cv::Feature2D'
    1>          c:\opencv\build\include\opencv2\features2d\features2d.hpp(365) : see declaration of 'cv::ORB'
    (36): warning C4250: 'demo_orb' : inherits 'cv::ORB::cv::ORB::info' via dominance
    1>          c:\opencv\build\include\opencv2\features2d\features2d.hpp(386) : see declaration of 'cv::ORB::info'
    

    Die ersten 5 Meldungen. Die restlichen Meldungen bauen auf diesen Meldungen auf, deswegen spare ich mir die mal jetzt



  • Bashar schrieb:

    Ich seh immer noch keine Fehlermeldung...

    Das sind lediglich Warnungen.



  • Ja, aber was sagen mir die Meldungen aus?



  • freekickchamp schrieb:

    Ja, aber was sagen mir die Meldungen aus?

    Nichts sinnvolles, die kannst du ignorieren. Aber vermutlich kommt das relevante danach, aber du weigerst dich ja, die Fehlermeldungen (error!) zu zeigen.



  • Mittlerweile weigere ich mich wirklich, weil auf einmal kein Fehler auftritt.
    Vor 3h habe ich nur Syntak-Fehler bekommen, deswegen hatte ich Sie mir gespart hier aufzulisten, weil ich doch nur

    ORB orb(1,2,3, usw.);

    anstatt

    ORB orb;

    geschrieben hatte.
    Aber gerade eben scheint es zu funktionieren und ich bin total verwirrt. Zumal ich mir jetzt selber etwas blöd vorkomme, weil ich nicht verstehe, was jetzt anders war.
    Ich wollte alle Fälle probieren und euch die Fehlermeldungen posten und nun kommt keine. Das ärgert mich.


Anmelden zum Antworten