“低头族”项目的学习

使用百度EasyDL实现“低头族”项目的一些个人总结:

一、组装设备

1.1采用户外真实场景抓取的图片,这之前是需要成套的采集数据的设备(电源采用12V的孔接入):

电源与摄像头的连接、摄像头与电脑的连接:

                               

             

 以上几张图片可以帮助新手顺利完成设备的连接,当成功连接后打开电源供电后电脑的以太网的状态应该从网络电缆被拔出转为未识别的网络(下面1.2.1的4中的图片可以看出)

1.2 在设备的组装调试的过程中大概遇到如下几个问题:

1.2.1:以太网IP地址的调配问题。该问题是随着电脑的升级,在浏览器上查找的步骤与实际进行的电脑操作是有些不同的,我针对Window10系统操作进行叙述:

1:从电脑“开始”键进入设置;

2:打开网络和Internet;

3:找到以太网,从以太网的相关配置中的适配器选项进入;

 4:

5:鼠标右键进入以太网属性界面,打开Internet 协议版本4(TCP/IPv4)进行IP地址的设置并进行保存。

1.2.2:电脑与摄像头联通的调试问题

1:才开始,用各种浏览器打开摄像头显示页面时总会出现以下情况

:2:解决方法

卸载一些多余的浏览器(本人卸载了除Google Chrome以外其它所有浏览器),再卸载所有杀毒软件,并重启电脑,安装摄像头相关插件,360安全卫士以及360安全浏览器,最后从360安全浏览器上打开摄像头画面。(这是我全部的操作步骤,到此我已经成功使电脑和摄像头连接)

二、收集数据(python自主学习)

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语句则不会显示图像。

原文地址:https://www.cnblogs.com/lgbdbky/p/13293888.html