在OpenCV中,提高摄像头捕获分辨率可以通过以下方法实现:
cv2.VideoCapture
类的set()
方法设置捕获分辨率。import cv2
# 创建VideoCapture对象
cap = cv2.VideoCapture(0)
# 设置捕获分辨率
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)
while True:
# 读取帧
ret, frame = cap.read()
# 显示帧
cv2.imshow('frame', frame)
# 按下q键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
cv2.VideoCapture
类的get()
方法获取摄像头支持的分辨率列表,并选择合适的分辨率。import cv2
# 创建VideoCapture对象
cap = cv2.VideoCapture(0)
# 获取摄像头支持的分辨率列表
resolutions = []
for i in range(3):
res_width = cap.get(cv2.CAP_PROP_FRAME_WIDTH_MIN + i)
res_height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT_MIN + i)
resolutions.append((res_width, res_height))
# 选择合适的分辨率
cap.set(cv2.CAP_PROP_FRAME_WIDTH, resolutions[0][0])
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, resolutions[0][1])
while True:
# 读取帧
ret, frame = cap.read()
# 显示帧
cv2.imshow('frame', frame)
# 按下q键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
需要注意的是,不同的摄像头可能支持不同的分辨率,因此在设置分辨率时需要根据实际情况进行调整。同时,提高分辨率可能会导致帧率下降,因此需要根据实际需求进行权衡。
领取专属 10元无门槛券
手把手带您无忧上云