【发布时间】:2018-03-22 08:41:50
【问题描述】:
我的代码:
import cv2
cap = cv2.VideoCapture(0)
cv2.namedWindow('frame', cv2.WINDOW_NORMAL)
while True:
key = cv2.waitKey(0) & 0xFF
ret, frame = cap.read()
cv2.imshow('frame', frame)
if key == ord('q'):
cap.release()
cv2.destroyAllWindows()
break
if key == ord('c'):
cv2.imwrite('capture.jpg', frame)
cap.release()
cv2.destroyAllWindows()
- 我运行这段代码。
- 它显示灰色显示。
- 我将相机对准一个物体,然后按“c”键。
- 它显示的不是对象图像,而是我运行代码时相机指向的图像,然后保存。
- 我将相机对准其他地方,然后按“c”键。
- 它显示它在 3. 看到的对象的图像并保存它。
相机滞后 1 步。为什么?
【问题讨论】:
-
图像将在 waitKey 命令期间显示,而不是之前。所以你在上一张图片的waitKey期间按c,然后下一帧就会被读写n+显示。
-
所以只需将您的 waitKey 行移到 imshow 行之后,恕我直言,它应该可以按预期工作。