📅  最后修改于: 2023-12-03 14:52:06.122000             🧑  作者: Mango
在使用 OpenCV 进行计算机视觉开发时,常常需要使用到摄像头捕获实时图像或是照片,因此本文将介绍如何使用 OpenCV 捕获网络摄像头的单张照片。
在开始之前,需要确保已经安装了 OpenCV 和相应的网络摄像头驱动程序。
import cv2
import urllib.request
import numpy as np
使用 OpenCV 捕获网络摄像头的单张照片的步骤如下:
stream = urllib.request.urlopen('http://url-to-video-stream')
bytes = bytes()
while True:
bytes += stream.read(1024)
a = bytes.find(b'\xff\xd8')
b = bytes.find(b'\xff\xd9')
if a != -1 and b != -1:
break
img = cv2.imdecode(np.fromstring(bytes[a:b+2], dtype=np.uint8), cv2.IMREAD_COLOR)
cv2.imshow('Stream',img)
cv2.imwrite('capture.jpg', img)
import cv2
import urllib.request
import numpy as np
stream = urllib.request.urlopen('http://url-to-video-stream')
bytes = bytes()
while True:
bytes += stream.read(1024)
a = bytes.find(b'\xff\xd8')
b = bytes.find(b'\xff\xd9')
if a != -1 and b != -1:
break
img = cv2.imdecode(np.fromstring(bytes[a:b+2], dtype=np.uint8), cv2.IMREAD_COLOR)
cv2.imshow('Stream',img)
cv2.imwrite('capture.jpg', img)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
通过以上代码,你已经可以使用 OpenCV 捕获网络摄像头的单张照片了,而且相当简单易用。