【发布时间】:2019-06-28 13:20:26
【问题描述】:
我是 openCv 的新手,我刚刚在 python 中编写了一个小程序,用于实时摄像头捕捉。我想以像素为单位更改帧大小,从标准的 640x480 更改为 1280x720。我的罗技相机具有高清分辨率 (720p),所以我知道这不是相机问题...
这是代码:
import numpy as np
from time import sleep
import cv2
import time
cap = cv2.VideoCapture(0)
cap.set(3,1280)
cap.set(4,720)
sleep(2)
while(True):
ret, s = cap.read()
cv2.imshow('frame', s)
if cv2.waitKey(20) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
但是当我运行它时,我得到了这个错误:
================== RESTART: C:/Users/Mattia/Desktop/fgs.py ==================
Traceback (most recent call last):
File "C:/Users/Mattia/Desktop/fgs.py", line 18, in <module>
cv2.imshow('frame', s)
cv2.error: OpenCV(4.0.0) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:350: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'
我正在使用 python 3.6 和 openCv 4.0
有人可以帮助我吗?谢谢!
【问题讨论】:
-
会不会是
ret是False但在这种情况下您仍在尝试将s显示为图像?如果ret是False,您是否尝试过continueing? -
是的,我试过了,如果我删除
cap.set(3,1280) cap.set(4,720),代码会以任何方式工作。感谢您回答顺便说一句。 -
@MattiaPeiretti 所以……你还有问题吗?
-
是的,我愿意。因为我需要更改分辨率,480p(默认)太低了..所以我需要找到一种方法让它变成 720p
-
尝试安装 v4l2-utils
sudo apt-get install v4l-utils并运行v4l2-ctl --list-formats-ext以检查支持的分辨率。
标签: python opencv resolution cameracapturetask frame-size