我正在开发一个需要在覆盆子pi上进行人脸检测的项目。我有一台USB相机来做这件事。帧速率显然非常慢。因此,我使用 VideoCapture.set()缩小了捕获分辨率。在我设置时,这将分辨率降低到 320,214 。这大大提高了捕获帧速率,但是它在320 X 214上显示了一个窗口上的Feed。我想保持相同的捕获分辨率,但我想要更大尺寸的显示窗口。我只是python和open cv的初学者。请帮帮我。下面是我为简单的相机提供的代码。
import numpy as np
import cv2
import time
cap = cv2.VideoCapture(-1)
cap.set(3, 320) #width
cap.set(4, 216) #height
cap.set(5, 15) #frame rate
time.sleep(2)
while(cap.isOpened()):
ret, frame = cap.read()
cv2.imshow("captured video", frame)
if cv2.waitKey(33) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
答案 0 :(得分:0)
如果我理解正确,您希望显示图像是原始图像的放大版本。如果是这样,您只需要cv2.resize
display_scale = 4
height, width = frame.shape[0:2]
height_display, width_display = display_scale * height, display_scale * width
# you can choose different interpolation methods
frame_display = cv2.resize(frame, (display_width, display_height),
interpolation=cv2.INTER_CUBIC)
cv2.imshow("captured video", frame_display)