(linux)人脸考勤项目(1)

1、下载Ubuntu虚拟系统
2、给Ubuntu配置网络

情况一:在这里插入图片描述
在虚拟网络编辑器中选择桥接模式,桥接模式可以简单理解为windows系统和Ubuntu共用一个网卡。然后在左上方单击虚拟机,选择设置在这里插入图片描述
在网络适配器这里也选择桥接模式
在这里插入图片描述
情况二:单击右上角上下两个箭头的标志图标
在这里插入图片描述
选择连接然后点编辑Edit
在这里插入图片描述
然后选择Ethernet选择设备
在这里插入图片描述
Ubuntu的下载、卸载命令,为apt-get install、remove [参数]
dpkg -s vim 查看vim的状态
3、编写在linux下的第一个c++程序
首先touch新建一个.cpp后缀文件,可以使用vi进行编辑,
在这里插入图片描述
也可以直接在桌面上以gedit打开,进行编写在这里插入图片描述
打开后就可以编写我们的c++代码,
在这里插入图片描述
编写完成之后,回到终端页面,输入命令
在这里插入图片描述
这里,意思是将main.cpp文件编译成一个名为main的可执行程序,这样我们可以直接输入./main就可以执行程序
在这里插入图片描述
4、安装OpenCV库
使用命令sudo apt-get install libopecv-dev安装
在这里插入图片描述
安装完之后,打开index索引
在这里插入图片描述
然后打开highgui这个库,里面包含了关于媒体输入输出的一些功能
在这里插入图片描述
打开之后我们要使用一个类Video Capture,打开看看具体的使用方法
在这里插入图片描述
这里呢我们先看看虚拟机上是否配置video设备,也就是虚拟机是否连接到电脑本身的摄像头,在根目录下,有个名为dev的目录,cd进去之后,查看是否有一个名为video0的文件,如果没有那就打开虚拟机设置将USB控制器中的USB兼容性改为USB3.0或者3.1
在这里插入图片描述
然后再虚拟机设置上面打开可移动设备寻找自己电脑上的摄像头并连接,连接之后再回到刚才的dev目录下,发现已经出现了一个名为video0的文件。
5、使用opencv库函数通过电脑自带摄像头获取彩色图像
这里我们先检查摄像头是否成功打开,,然后申请一个名为ColorImage的一个容器,用来存储照片,这里使用的是opencv库函数中的示例代码改编,cap>>ColorImage意思是把获取的照片进行存储,下面的imshow(“参数1”,参数2)函数用来显示获取到的照片,第一个参数表示显示框的名称,第二个参数表示现实的图片源。waitKey(40)表示40毫秒
在这里插入图片描述
在这里插入图片描述
7、图像处理(彩色图像转换为黑白图像)
因为彩色图像所包含的信息量比较大,在进行人脸检测的难度和准确度来说,黑白照片优于彩色照片。这里我们调用openv下的图像处理方法ctvColor
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第一个参数是输入源,第二个是输出源,第三个是色彩空间转换代码,第四个参数可以直接删。。
我们再申请一个容器来存储灰色图片。这里还应用了equalizHist方法来调整灰色图像对比度使更容易区分人脸。
在这里插入图片描述
8、人脸检测
这里我们实例化目标检测下的一个类叫级联分析类器在这里插入图片描述
命名classfier,后面括号里面的参数,是opencv自带的人脸模型,使其能够具备从图像中检测人脸的能力
在这里插入图片描述
接下来调用CascadeClassfier下的一个名为detectMultiScale的方法,通过这个方法,可以从一个图像中检测出人脸,并框起来。

detectMultiScale(const Mat& image, vector<Rect>& objects, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size()

这里第一个参数是要检测的图像,第二个参数是存放框框的容器,这里我们声明一个名为Allface的矩形容器。

在这里插入图片描述
通过retangle方法来将识别出的人脸画框,这里增加了一个判断语句,避免 摄像头未识别到人脸而结束。
在这里插入图片描述
9、图像截图
因为做人脸识别是依靠截取一张张图片来进行比对,这里新建一个名为MatFace的容器来存储截图
在这里插入图片描述

运用opencv的imencode方法将图像以.jpg的格式存储。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值