簡體   English   中英

我無法從OpenCV的攝像頭捕獲幀

[英]I can't capture frames from camera in OpenCV

我試圖檢測眼睛,但是我還有另一個問題。 我無法顯示相機框。 問題可能很明顯,但我是新手。 我的部分代碼如下:

這是我的EyeDetection.h

#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/objdetect/objdetect.hpp>

using namespace cv;

class EyeDetection {
private:
    CascadeClassifier eye_cascade, eyepair_cascade;
public:
    EyeDetection();
    void detect();
}; 

這是我的EyeDetection.cpp

#include "EyeDetection.h"

EyeDetection::EyeDetection() {
    eye_cascade.load("haarcascade_eye.xml");
    eyepair_cascade.load("haarcascade_mcs_eyepair_big.xml");
}

void EyeDetection::detect()
{
    VideoCapture webcam(1); //Webcam number is 1
    if (eyepair_cascade.empty() || eye_cascade.empty() || !(webcam).isOpened())
        return;

    webcam.set(CV_CAP_PROP_FRAME_WIDTH, 800);
    webcam.set(CV_CAP_PROP_FRAME_HEIGHT, 600);

    Mat frame;
    while (1) {
        webcam >> frame;
        if (frame.empty()) continue;
        imshow("asad", frame);
    }
}

這是我的Source.cpp(main):

#include "EyeDetection.h"

using namespace cv;

int main(int argc, char** argv)
{
    EyeDetection e = EyeDetection();
    e.detect();
    return 0;
}

它不顯示相機框架,而僅顯示空白的灰色窗口。 問題是什么?

  1. 請檢查您的攝像機ID1。如果只有一台已連接的攝像機,請更換攝像機ID 0代替1。

cv2.VideoCapture(1)cv2.VideoCapture(0)

  1. 添加waitKey()行在循環末尾添加此行

`

while (1) {
        webcam >> frame;
        if (frame.empty()) continue;
        imshow("asad", frame);
        cv2.waitkey(0)
    }

`也許您應該檢查一下waitKey()。 謝謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM