欢迎您访问系统网
您现在的位置是:首页» windows系统» opencv人脸识别与跟踪,基于opencv的机器视觉定位

opencv人脸识别与跟踪,基于opencv的机器视觉定位

2024-07-13 02:48:55
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。1. 安装opencv视觉库OpenCV 是一个开源的计算机视觉库,OpenCV 库用C语言和 C++ 语言编写,可以在 W

本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。

1. 安装opencv视觉库

OpenCV 是一个开源的计算机视觉库,OpenCV 库用C语言和 C++ 语言编写,可以在 Windows、Linux、Mac OS X 等系统运行。同时也在积极开发 Python、Java、Matlab 以及其他一些语言的接口,将库导入安卓和 iOS 中为移动设备开发应用。

OpenCV 库包含从计算机视觉各个领域衍生出来的 500 多个函数,包括工业产品质量检验、医学图像处理、安保领域、交互操作、相机校正、双目视觉以及机器人学。

首先我们来引入我们需要的模块:pip install opencv-python

pip的仓库一般都是在国外的服务器上,加了镜像源可以提供下载的速度。

常见 pip 镜像源(国内源)

清华镜像源:https://pypi.tuna.tsinghua.edu.cn/simple

阿里云镜像源:http://mirrors.aliyun.com/pypi/simple/

中国科技大学镜像源: https://pypi.mirrors.ustc.edu.cn/simple/

华中理工大学镜像源:http://pypi.hustunique.com/

山东理工大学镜像源:http://pypi.sdutlinux.org/

豆瓣镜像源:http://pypi.douban.com/simple/

临时使用pip镜像源可以在使用pip的时候加参数:-i https://pypi.tuna.tsinghua.edu.cn/simple

2. 图片像素矩阵读写原理

首先我们测试如何使用opencv查看一张图片,我们下载的是opencv视觉库,但是引入的时候是引入cv2,调用 imshow函数进行开启窗口查看图片。

运行结果:窗口一闪而过

因为程序一旦停止运行,图片就不会展示了,所以会出现一闪而过的窗口展示,所以为了让图片长时间展示出来,那么需要加:cv2.waitKey()

图片像素矩阵概念

数字图像数据可以用矩阵来表示,因此可以采用矩阵理论和矩阵算法对数字图像进行分析和处理。由于数字图像可以表示为矩阵的形式,所以在计算机数字图像处理程序中,通常用二维数组来存放图像数据。cv库中的函数cv.image读取的是图片的像素矩阵,矩阵单元是rbg的向量形式。下面举例读取纯色图片来解释原理情况:

三维列表:最外维是高,中间维度是宽,最里面的维度是rgb

就比如读取一张纯色(40,44,52)的jpeg图片,发现矩阵的每个是rgb行向量都是相同的。

jpeg与png区别:png可以存储透明的图片,因为png图片的像素单元,是4个数值的元组进行存储,分别对应 Red、Green、Blue、透明度

而我们采用传统的文件读取方式,读出结果都是二进制的格式:

3. 调用电脑本地摄像头

在进行连接手机摄像头之前,我们可以尝试调用电脑本地摄像头做预测试,代码如下

运行结果:开启video的窗口,展示摄像头实时的图像。

代码相关参数介绍

关于函数waitKey(delay=None)的介绍:@param delay 参数,等待的时长,会发生同步阻塞,单位是milliseconds毫秒,如果传值为0,那么就是永久阻塞直到键盘事件发生。

关于函数flip(src, flipCode, dst=None)的介绍:@param flipCode 参数,翻转码,分别有三种取值:大于0,小于0,等于0,下面的源码注释也详细地介绍了。

视频播放案例测试:

另外,我们也可以将其他视频引入进来,当然你可以换一个网络视频地址或者本地视频地址,把它变成视频播放器,然后我们就需要去读取我们引入的视频地址。

网络视频地址比如:https://klxxcdn.oss-cn-hangzhou.aliyuncs.com/histudy/hrm/media/bg3.mp4

4. 内网IP连接手机摄像头

android手机上安装一款APP:IP摄像头如果应用商店没有,那么打开手机百度进行下载,安装成功后,点击软件界面下方“打开IP摄像头服务器”,选择局域网的IP地址。

展示手机端摄像头实时图像

要想连接成功,必须保持手机与电脑处于同一局域网下,例如同一热点,同一WIFI。

既然实时的,而且要长时间运行,那当然少不了while true

运行结果如下所示: cv2.imwrite(filename, img)保存一张图像,filename传文件的地址值和文件名称在Windows中用python处理图像时遇到问题-!_src.empty() in function 'cv::cvtColor'

在运行时报错,根据显示,应该是没有对cvtColor传入源图像。逐步检查:

文件路径正确,是绝对路径,文件名中有中文,最后是因为文件名中有中文,将处理后文件进行保存后发现英文文件名的图像正常,而中文错误。

5. opencv实现人脸检测

梳理一下实现人脸识别需要进行的步骤:流程大致如此,在此之前,要先让人脸被准确的找出来,也就是能准确区分人脸的分类器,在这里我们可以用已经训练好的分类器,网上种类较全,分类准确度也比较高,我们也可以节约在这方面花的时间。

下载人脸检测xml文件

需要下载人脸模型库文件“ haarcascade_frontalface_default.xml ”,帮助摄像头获取的画面去对比,下载成功后,将“haarcascade_frontalface_default.xml”文件放在上面的代码文件目录里。

链接:https://pan.baidu.com/s/1lxZrI9ZjXWreJvKPYgyQRQ 提取码:w96c

人脸位置检查代码展示如下:

实验结果是:在人脸的位置出现白色的矩形框:就好比这样,由于博主不想露脸,效果就像如下所示的那样。

6. 腾讯云API人脸识别

太困了,明天更新,准备先休息了,明天见 · · · · · ·

XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com