前言

原理就是调用摄像头获得图像,然后储存到图片中。学会以后可以干一些有趣的事,比如延时摄影、定时拍照等。

代码

1import
 cv2
#导入模块
2
cap = cv2.VideoCapture(
0
)
#摄像头捕获
3
cv2.imwrite(
'img.jpg'
,cap.read()[
1
]) 
#读取图像,并存入图片
当执行此代码后,你会发现代码同目录下会多出一张图片,就是你刚才用摄像头照的。
不过这个代码太简陋了,下面加一些其他功能:显示画面,按s拍照,按空格退出
1import
 cv2

2
3#捕获摄像头,0代表笔记本内置摄像头,外置摄像头改为1
4
cap = cv2.VideoCapture(
0
)

5
i = 
0
6
7whileTrue
:

8# 读取图像,ret表示当前帧是否捕获正确,返回布尔值
9
    ret, frame = cap.read()

10if
 ret:

11# 将图像显示出来
12
        cv2.imshow(
"capture"
, frame)

13# 画面暂停制定毫秒,期间按了键盘则返回按键的ASCII码,否则返回-1
14
    k = cv2.waitKey(
1
)

15# 参数为0表示无线等待,代码会阻塞
16# 不调用waitKey,画面只有一片灰色,而且一闪而过
17# 按空格键退出,ord()函数把字母转化为ASCII码
18if
 k == ord(
' '
):

19break
20# 按s键保存
21elif
 k == ord(
's'
):

22# 把图像写入图片
23
        cv2.imwrite(str(i)+
'.jpg'
, frame)

24
        i += 
1
25# 关闭视频捕获器
26
cap.release() 

27# 销毁所有窗口
28
cv2.destroyAllWindows()  

推荐阅读
喜欢就点击“在看”吧!
继续阅读
阅读原文