Hallo
Ich habe eine Klasse Namens ContentFinder, mit der Methode (Funktion) colorReduce.
Nach dem erstellen eines Objektes (Contentfinder h) möchte ich die Methode jetzt anwenden, und zwar mit:
color=h.colorReduce(color, 32);
Beim Kompilieren bekomme ich jetzt jedoch folgende Fehlermeldung:
no match for 'operator=' in 'color = h.ContentFinder::colorReduce(((cv::Mat&)(& color)),32)'
candidates are: cv::Mat& cv::Mat::operator=(const cv::Mat&)
etc.
Kann mir jemand mit diesen erklärenden Worten helfen?? Oder braucht es da noch mehr an Infos, um mir zu helfen!?
Mal wieder vielen Dank.....
Boris
no match for 'operator=' in . . .
-
- Beiträge: 14
- Registriert: 20. Februar 2012 06:22
Re: no match for 'operator=' in . . .
komplette Deklaration (nicht Definition) von ContentFinder::colorReduce() bitte.
//edit
Und welchen Typ hat "color"? Und bitte die gesamte Fehlermeldung posten, nicht nur diese zwei Zeilen.
//edit
Und welchen Typ hat "color"? Und bitte die gesamte Fehlermeldung posten, nicht nur diese zwei Zeilen.
-
- Beiträge: 14
- Registriert: 20. Februar 2012 06:22
Re: no match for 'operator=' in . . .
Hallo franzf
Wie man unschwer ersehen kann, arbeite ich mit OpenCV.
Hier die Definition.
Die Fehlermeldung verläuft so weiter: ch möchte das alles von oben nicht nochmal abschreiben müssen, Danke)
......
note: cv::Mat& cv::Mat::operator=(const cv::MatExpr&)
note: cv::Mat& cv::Mat::operator=(const cv::Scalar&)
Das wars:_)
Viele Grüße
Boris
Wie man unschwer ersehen kann, arbeite ich mit OpenCV.
Hier die Definition.
Code: Alles auswählen
void colorReduce(cv::Mat &image, int div=64) {
int nl= image.rows; // number of lines
int nc= image.cols * image.channels(); // total number of elements per line
for (int j=0; j<nl; j++) {
uchar* data= image.ptr<uchar>(j);
for (int i=0; i<nc; i++) {
// process each pixel ---------------------
data[i]= data[i]/div*div + div/2;
// end of pixel processing ----------------
} // end of line
}
}
......
note: cv::Mat& cv::Mat::operator=(const cv::MatExpr&)
note: cv::Mat& cv::Mat::operator=(const cv::Scalar&)
Das wars:_)
Viele Grüße
Boris
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: no match for 'operator=' in . . .
Und wie soll der Compiler der Variable color etwas zuweisen wenn deine colorReduce() - Funktion void zurückliefert?
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: no match for 'operator=' in . . .
Und was steht dann ganz am Ende? So was in der Art:
Auch wenn es manchmal fade ist, die kompletten Fehlerausgaben zu lesen, es wird sich immer lohnen.
Code: Alles auswählen
Anmerkung: keine bekannte Umwandlung für Argument 1 von »void« nach »const cv::Mat&«