“低头族”项目的学习

1、生成数据集

这里我们需要从摄像头的实时视频中生成数据集,使用python+opencv库,代码如下:
import cv2
cap = cv2.VideoCapture(1) #计算机自带的摄像头为0,外部设备为1
i=0
while(1):
    ret,frame = cap.read()  #ret:True/False,代表有没有读到图片  frame:当前截取一帧的图片
    cv2.imshow("capture",frame) 
    
    if (cv2.waitKey(1) & 0xFF) == ord('s'): #不断刷新图像,这里是1ms 返回值为当前键盘按键值
        gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) #RGB图像转为单通道的灰度图像
        gray = cv2.resize(gray,(320,240)) #图像大小为320*240
        cv2.imwrite('F:/dlib-19.16/dlib-19.16/tools/imglab/build/images/%d.jpg'%i,gray)这里为抓取图片存在的地址,可以按照格式自定义地址
        i += 1
    if (cv2.waitKey(1) & 0xFF) == ord('q'):
        break  
    
cap.release()
cv2.destroyAllWindows()

版权声明:本文为CSDN博主「Silvia+」的原创文章,遵循CC 4.0 BY-SA
原文链接:https://blog.csdn.net/wsf09/article/details/88042450

上述代码块在anaconda的jupyter notebook 环境下运行后,会出现:释放时错误[SourceReaderCB::~SourceReaderCB terminating async callback]

修改代码是

cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)

2、waitKey函数的功能:

①等待x ms,如果在此期间有按键按下,则立即结束并返回按键的ASCII码,否则返回-1;

②如果x=0,则无限等待下去,直到有按键按下;

【注】:在imshow之后,如果没有waitKey语句则不会显示图像。

你可能感兴趣的:(“低头族”项目的学习)