【问题标题】:How to capture an image by keyboard input using opencv?如何使用opencv通过键盘输入捕获图像?
【发布时间】:2021-05-11 13:11:34
【问题描述】:

我想通过键盘输入直接从我的相机捕捉图像。例如,当我按“r”时,相机会拍下它所看到的照片。这是我的代码:

import cv2 as cv
import time

cap = cv.VideoCapture(0)

while True:
    _, img = cap.read()

    cv.imshow('original', img)

    if cv.waitKey(1) == ord('q'):
        break
    elif cv.waitKey(1) == ord('r'):
        cv.imwrite('data_{}.jpg'.format(time.time()), img)
        print('saving an image')
        continue
    else:
        continue

cap.release()
cv.destroyAllWindows()

这段代码实际上可以工作,但不是那么好。有时,当我按“r”时,它不会将任何图像保存到我的目录中。我怎样才能改进这段代码,所以每当我按“r”时,它肯定会保存图像?

【问题讨论】:

    标签: python opencv


    【解决方案1】:

    你应该捕获一个键,然后检查它的值。

    while True:
        key = cv.waitKey(1)
        if key == ord('q'):
            break
        elif key == ord('r'):
            # do your stuff here
            pass
    

    您完成它的方式一次通过一个新的按键来跨越条件块。假设您首先按“r”。该循环当前位于if cv.waitKey(1) == ord('q'),其评估结果为假,因此它继续进行下一次检查。到这个时候你没有按下任何东西,所以cv.waitKey(1) 将返回 -1 并且你对 'r' 的检查将是错误的。继续前进。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 2014-05-18
      • 1970-01-01
      • 2021-04-09
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多