简体   繁体   English

仅当按下ESC,空格键或Enter键时,VideoFrame才会出现OpenCV c ++

[英]VideoFrames are only coming when esc,spacebar or enter keys are pressed OpenCV c++

I am kind of an intermediate in Computer Vison and fairly proficient in opencv python however coming to c++ i am facing problems in just selecting ROI from Video feed and displaying the cropped feed .My code looks like this. 我是Computer Vison的一个中级人员,并且相当精通opencv python,但是来到C ++时,我仅从视频供稿中选择ROI并显示裁剪后的供稿就面临着问题。我的代码如下所示。

#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);

}
}

The code is compiling ,and the cropped window is seen however I am always in need to click enter,spacebar or esc to get the video feed.Weird? 代码正在编译,并且可以看到裁剪的窗口,但是我总是需要单击enter,空格键或esc来获取视频供稿。很奇怪?

So the correct version of the corrected code will look somewhat like this.Thanks for the help. 因此,正确代码的正确版本将看起来像这样。感谢您的帮助。

#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)*;

} } }}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM