Ich versuche, meinen OpenCV-basierten Code zu ändern, um vertrauliche Informationen mit jedem erkannten Objekt aus einem Kaskadenklassifizierer zu erhalten. Wenn ich the overloadCascadeClassifier
's detectMultiScale
Methode aufrufen, die Parameter für rejectLevels
und levelWeights
(und pass wahr für outputRejectLevels
) herausnimmt, wird der Aufruf nie abgeschlossen. Intern wird der Aufruf an detectMultiScaleNoGrouping
schnell beendet, aber Millionen von Objekten zurückgegeben. Wenn ich keinen der Extra-Out-Parameter übergebe und outputRejectLevels
auf false setze, gibt dieser Aufruf 60 Objekte zurück, und der Rest der Funktion funktioniert einwandfrei.DetectMultiScale kehrt nie zurück, wenn Überlast mit rejectLevels und levelWeights aufgerufen wird
Soll ich diese Überladung nicht nennen? Oder gibt es einen anderen Grund dafür, dass so viele Werte zurückgegeben werden, dass die Funktion niemals endet? Wie kann ich das richtig machen?
Hinweis: Ich sehe another question, die auf das gleiche Problem verweist, aber es enthält nicht viele Informationen über das Problem selbst und hat keine Antworten erhalten.
Sie können dieses Problem betrachten: [extended detectMultiscale schlägt fehl, wenn Ablehnungsstufen angefordert werden # 6022] (https://github.com/Itseez/opencv/issues/6022). – Catree
Danke @Catree für den Zeiger - ich habe ein bisschen gegraben und konnte die Lösung finden. –