Слишком маленький размер окна OpenCV автоматически изменяется

#python #opencv

Вопрос:

Последний раз, когда я проверял свой код, размер окна был нормальным. Но когда я запустил его сейчас, окно стало маленьким. Пожалуйста, кто-нибудь знает, как привести это в норму?

Вот мой код:

 import cv2 as cv

face_cascade = cv.CascadeClassifier('haarcascade_frontalface_default.xml')
eyeglasses_cascade = cv.CascadeClassifier('haarcascade_eye_tree_eyeglasses.xml')
cap = cv.VideoCapture(0)

while cap.isOpened():
    _, frame = cap.read()
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.1, 4)

    for (x, y, w, h) in faces:
        cv.rectangle(frame, (x,y), (x w, y w), (255,0,0), 3)
        cv.putText(frame,'Face', (x, y h 30), cv.FONT_HERSHEY_SIMPLEX, 1, (255,0,0), 2)

        roi_gray = gray[y:y h, x:x w]
        roi_color = frame[y:y h, x:x w]
        glasses = eyeglasses_cascade.detectMultiScale(roi_gray)

        for (gx, gy, gw, gh) in glasses:
            cv.rectangle(roi_color, (gx,gy), (gx gw, gy gh), (0,255,0), 2)
    cv.imshow("img", frame)
    if cv.waitKey(1) amp; 0xFF == ord('x'):
        break

cap.release()
 

Вот как это выглядит

Ответ №1:

Вы должны указать OpenCV, какой размер использовать с устройством захвата:

 cap = cv.VideoCapture(0)
cap.set(cv.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv.CAP_PROP_FRAME_HEIGHT, 1080)
 

Обратите внимание, что ваша камера может поддерживать только определенные разрешения, поэтому важно это проверить.

Комментарии:

1. Спасибо! Я попробовал это, и это действительно делает окно больше. Однако это не решение. Но я перезагрузил свой компьютер, и он работает. Я не знаю, почему

2. @водитель устройства камеры с сыром ведет себя неправильно, было бы моим подозрением. Однако по-прежнему важно указать желаемый (и ожидаемый) размер выходного кадра.

3. Это отмечено @Abstract . Спасибо!

Ответ №2:

Я перезагрузил свой компьютер, и, как ни странно, он работает. Размер окна теперь вернулся к нормальному