OpenCv gekapselt, wie Datei wieder schließen?
-
Hallo,
ich hab mir ein MFC GUI gebastelt in dem ich ein paar OpenCv Funktionen nutze um Videodateien zu öffnen, darin Nutzereingaben machen zu lassen und wieder zu schließen. Im Anschluß werden diese Eingaben benutzt um einen Algorithmus auf der Videosequenz auszuführen.
Die im GUI benutzte OpenCv Funktionalität habe ich gekapselt. Allerdings weiß ich nicht, wie ich die geöffnete Videodatei wieder schließen kann.
Das Problem steckt in der CVideo::releaseFileCapture() -Funktion. Die darin gekapselte OpenCV-Funktion cvReleaseCapture(&capture) benötigt die Membervariable &CVideo::inVideo; ...müsste ich daher als public deklarieren.
Allerdings ist diese Variante nicht unbedingt die beste.Für eure Vorschläge wie ich diese Sache besser (oder überhaupt) lösen kann wäre ich sehr dankbar!
class CVideo { ... public: bool setFileCapture(const string& name) { // name im Stil von: "C:\\Dateien\\filmchen1.avi" const char* cstringName = name.c_str(); ... // // Datei öffnen: // CvCapture* = cvCreateFileCapture(const char* filename); // inVideo = cvCreateFileCapture(cstringName); if(inVideo == NULL) return false; pathName = filename; return true; } CvCapture* getFileCapture() { return inVideo; } void releaseFileCapture(); { if(inVideo != NULL) { // Datei schließen: // cvReleaseCapture(&capture); // mein Problem, da oben ^ // wäre es legitim inVideo als public zu deklarieren ??? cvReleaseCapture(& inVideo); } } private: string pathName; CvCapture* inVideo; }
-
Upps, passiert den Besten. Lösung selbst gefunden, Beitrag bitte schnell mal löschen :-).