如何让OpenCV显示整个相机帧?

2024-09-30 18:21:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个项目中使用180度FOV鱼眼相机,我很难让OpenCV显示整个相机帧。当我在标准的Windows camera应用程序中打开相机时,它会显示完整的180度视野,但当我使用简单的脚本以Python显示相机时,它会裁剪出一大块图像,几乎将视野减半

使用Windows摄像头应用程序拍摄的图像:https://ibb.co/WFK8Jm2

运行Python脚本时的图像:https://ibb.co/QddnWXJ

下面是我正在使用的代码:

import cv2

cap = cv2.VideoCapture(0)


if not cap.isOpened():
    raise IOError("Cannot open webcam")

while True:
    ret, frame = cap.read()
    frame = cv2.resize(frame, (1500,1000), fx=0, fy=0, interpolation=cv2.INTER_AREA)
    cv2.imshow('Input', frame)

    c = cv2.waitKey(1)
    if c == 27:
        break

cap.release()
cv2.destroyAllWindows()

有人知道如何停止自动裁剪并显示整个画面吗?调整窗口大小没有帮助。任何帮助都将不胜感激


Tags: 项目https图像脚本应用程序ifwindowscv2
1条回答
网友
1楼 · 发布于 2024-09-30 18:21:47

定义视频捕获后,打印以下两个变量:

print(cap.get(cv.CAP_PROP_FRAME_WIDTH), cap.get(cv.CAP_PROP_FRAME_HEIGHT))

如果它打印默认OpenCV值640, 480,则可以使用cap.set方法将其设置为相机的分辨率:

cap.set(cv.CAP_PROP_FRAME_WIDTH, camera_width)
cap.set(cv.CAP_PROP_FRAME_HEIGHT, camera_height)

相关问题 更多 >