Ich schreibe eine kleine C++-Anwendung um die opencv haar-Trainingsfunktion (nämlich cvCreateTreeCascadeClassifier) zu wickeln. Die Funktion wirft eine ganze Ladung von Ausgabe auf der Konsole und ich möchte diese Ausgabe zu analysieren, so dass ich verschiedene Variablen in meinem Code auffüllen kann.
Die Funktion, die ich verwenden möchte, ist nicht Teil der eigentlichen openCV-Bibliothek; stattdessen muss sie mit meinem Code als Teil des Projekts gebaut werden. Die gesamte Ausgabe der Funktion erfolgt über printf.
Frage: Ist es möglich, die printf-Anweisungen abzufangen, bevor sie auf der Konsole landen? Ich habe es geschafft, sie mit freopen umzuleiten, aber das scheint ein wenig ungeschickt, da ich dann die Datei parsen und dann löschen muss, wenn der Funktionsaufruf beendet ist. Außerdem wird die Funktion wahrscheinlich für mehrere Stunden (und möglicherweise sogar Wochen!) ausgeführt werden, so dass die Größe der Datei ein Problem sein könnte, wenn seine ständig angehängt werden zu.
Anforderungen: Die Anwendung muss in C++ geschrieben sein und sowohl unter Windows als auch unter Linux laufen (aber ich habe kein Problem mit bedingten Kompilieranweisungen, wenn es sein muss). Ich möchte auch in der Lage sein, noch meine cout und cerr Nachrichten auf der Konsole zu sehen (nur nicht die printf).
Mein Googeln hat mir den Lebenswillen genommen! Kann jemand mit einer Lösung helfen, entweder durch ein Codebeispiel oder durch Hinweise auf Stellen, an denen ich nach einer Antwort suchen sollte?
Danke