如何让我的程序输入从相机拍摄的图像?

How can I make my program input images taken from a Camera?

我正在开发一个 python 程序来读取卡车的牌照。由该程序处理并过滤字符作为输出的图像。下面是程序中图片的输入:

img = cv2.imread('image.jpg') #variable 'img' gets processed later using ocr

现在,有没有办法制作一个网络摄像头,例如:拍摄图像,将其存储在某个地方,然后 运行 带有拍摄图像的程序?

使用 Python 3.7.2

您可以使用OpenCV的VideoCapture方法捕获单帧。

import cv2

pic = cv2.VideoCapture(0) # video capture source camera (Here webcam of laptop) 
ret,frame = pic.read() # return a single frame in variable `frame`

while(True):
    cv2.imshow('img1',frame) #display the captured image
    if cv2.waitKey(1) & 0xFF == ord('y'): #save on pressing 'y' 
        cv2.imwrite('images/c1.png',frame)
        cv2.destroyAllWindows()
        break

pic.release()

为了 camera/video 我可以推荐这个 OpenCV

import numpy as np
import cv2 as cv
cap = cv.VideoCapture(0)
if not cap.isOpened():
    print("Cannot open camera")
    exit()
while True:
    # Capture frame-by-frame
    ret, frame = cap.read()
    # if frame is read correctly ret is True
    if not ret:
        print("Can't receive frame (stream end?). Exiting ...")
        break
    # Our operations on the frame come here
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
    # Display the resulting frame
    cv.imshow('frame', gray)
    if cv.waitKey(1) == ord('q'):
        break
# When everything done, release the capture
cap.release()
cv.destroyAllWindows()

cv.VideoCapture(0) 捕获视频帧并 ret, frame = cap.read() 读取每一帧