2017-06-14 1 views
0

Ich bin ein Zwischenprodukt in Computer Vison und ziemlich kompetent in opencv Python aber in C++ kommt ich Probleme bei der Auswahl ROI von Video-Feed und Anzeige der abgeschnittene Feed. Mein Code sieht so aus.VideoFrames kommen nur, wenn esc, Leertaste oder Eingabetasten gedrückt werden OpenCV C++

#include "opencv2/highgui.hpp" 
#include "opencv2/imgproc.hpp" 
#include "opencv2/objdetect/objdetect.hpp" 
    #include "opencv2/tracking.hpp" 
#include "iostream" 
using namespace cv; 
using namespace std; 
int main() { 

Mat frame1; 
VideoCapture cap; 
cap.open(0); 
cap.read(frame1); 
Rect2d roi = selectROI(frame1, true); 
Mat Crop = frame1(roi); 

while (1) { 

    cap.read(frame1); 
    Crop = frame1(roi); 
    if (Crop.empty()) { 
     cerr << "ERROR! blank frame grabbed\n"; 
     break; 

    } 
    imshow("roi", Crop); 
    int key=waitkey(0); 

} 
} 

Der Code kompiliert, und das beschnittene Fenster wird jedoch in Not bin ich immer zu sehen klicken eingeben, spacebar oder esc das Video feed.Weird zu bekommen?

+0

ich dort hinzuzufügen vergessen muss natürlich ein WAITKEY am Ende duh sein !! – rob

+0

Sie können die Frage bearbeiten, um den Code zu korrigieren, aber das ist wahrscheinlich Ihr Problem - verwenden Sie 'waitKey (1)' anstelle von 'waitKey (0)' – slawekwin

+0

Hey danke, dass tatsächlich gearbeitet ..... Ich habe nicht bemerkt, dass meine Tastatur wartete auf unendliche Tasten drücken ... dachte, etwas stimmte nicht mit der Logik ... sehr dumm, danke Aton !!! – rob

Antwort

1

Also die richtige Version des korrigierten Codes wird etwa so aussehen. Danke für die Hilfe.

#include "opencv2/highgui.hpp" 
#include "opencv2/imgproc.hpp" 
#include "opencv2/objdetect/objdetect.hpp" 
#include "opencv2/tracking.hpp" 
#include "iostream" 
using namespace cv; 
using namespace std; 
int main() { 

Mat frame1; 
VideoCapture cap; 
cap.open(0); 
cap.read(frame1); 
Rect2d roi = selectROI(frame1, true); 
Mat Crop = frame1(roi); 

while (1) { 

cap.read(frame1); 
Crop = frame1(roi); 
if (Crop.empty()) { 
    cerr << "ERROR! blank frame grabbed\n"; 
    break; 

} 
imshow("roi", Crop); 
*int key=waitkey(1)*; 

} }

+0

bitte markieren Sie die vorgenommene Änderung, damit Sie leichter feststellen können, wenn jemand mit einem ähnlichen Problem vorbeikommt und Ihre eigene Antwort akzeptiert – slawekwin

Verwandte Themen