opencv人脸识别(一)调用笔记本摄像头

人工智能39

我将分享一个完整的项目,从基础库安装到人脸识别,做一个可视化的界面。

1、opencv-python安装

要调用电脑摄像头得安装在python种安装opencv库;使用

pip install opencv-python #用于安装opencv库

2、代码调用电脑摄像头

安装成功后我们就可以使用opencv库打开笔记本摄像头,调用完成摄像头后,我们要逐帧显示,这里我们就要用到 while函数不断显示摄像头获取的每一帧图像,使用 cap.isOpened()判断摄像头开启就不断循环,代码演示如下:

import cv2

#调用摄像头
VideoCapture的参数是指调用电脑那个摄像头,笔记本电脑一般默认为0
cap=cv2.VideoCapture(0)

while cap.isOpened():
    #读取视频
    ret,frame=cap.read()
    #第一个ret 为True 或者False,代表有没有读取到图片
    #第二个frame表示截取到一帧的图片
    frame=cv2.flip(frame,flipCode=1)
    #判读是否按下q键,按下q键关闭摄像头;
    if cv2.waitKey(30)&0xff==ord('q'):
        break
    #显示画面
    cv2.imshow('face',frame)
#释放摄像头
cap.release()
#销毁窗口
cv2.destroyAllWindows()

cv2.VideoCapture()设置不同参数可以调用不同摄像头,笔记本电脑一般都是默认为0,还可以打开本地视频,将本地视频地址放进去就可以了。

可以通过cap.get(propId)来查看视频相关参数信息。propId范围是0到18之间的整数,不同的数值表示不同属性,自己可以尝试一下。如果感觉人脸视频窗口很小可以使用cap.set(propId,value)来设置窗口大小,cap.get(3)和cap.get(4)来查看每一帧画面的宽和高,默认是640x480。我们可以使用ret=cap.set(3,1080)和ret = cap.set(4,720)来把宽和高改成1080*720。数字5帧速率,7是返回帧数。我就介绍这这个数字。

代码中的 cv2.file()是进行画面翻转的,里面需要给定两个参数,

cv2.flip(filename, flipcode)
  • 第一个参数filename:是需要翻转的画面,
  • 第二个参数flipcode:表示翻转的方式,

filpcode翻转方式-1水平垂直翻转0垂直翻转1水平翻转

接下来我们看看获取出来的摄像头画面图片有点模糊一是摄像头像素低二是GIF图片被压缩过。

opencv人脸识别(一)调用笔记本摄像头

下一张文章我将分享opencv人脸检测。

我编写的一个opencv人脸识别案例:地址YueXia/Face-opencv - 码云 - 开源中国 (gitee.com)

Original: https://blog.csdn.net/qq_51967017/article/details/125038633
Author: ☆月夏
Title: opencv人脸识别(一)调用笔记本摄像头



相关阅读1

Title: 信创操作系统--统信UOS桌面版(文档处理:输入法、语音输入法、WPS、文本编辑器)

信创操作系统–统信UOS桌面版(文档处理:输入法、语音输入法、WPS、文本编辑器)

目录

前言

用户可以根据需要在UOS系统中使用输入法或语音输入,在WPS办公软件和编辑器中对文档进行处理。

1、 输入法配置

输入法配置是统信UOS预装的应用,用以对操作系统中已安装的输入法进行设置,包括快捷键,外观等,新安装的输入法也会同步显示到该应用的输入法列表中。

输入法配置的打开方式:
在【启动器】中搜索【输入法配置】如图1-1

opencv人脸识别(一)调用笔记本摄像头

图1-1 搜索【输入法配置】

打开输入法配置应用后默认进入输入法配置界面,可以添加,删除,调整输入法上下顺序和设置输入法,如图1-2
opencv人脸识别(一)调用笔记本摄像头

图1-2 输入法配置

在输入法配置界面,单及【全局配置】,可根据操作习惯在全局配置界面设置输入法快捷键,程序以及输出的相关选项如图1-3
opencv人脸识别(一)调用笔记本摄像头

图1-3 全局配置

在输入法配置界面,单机【外观】,可设置输入法界面的字体大小,字体以及皮肤等如图1-4
opencv人脸识别(一)调用笔记本摄像头

图1-4 输入法外观配置

在输入法配置界面,单机【附加组件】,可根据个人习惯配置拼写,输入法选择器,快速输入以及剪贴板等组件如图1-5
opencv人脸识别(一)调用笔记本摄像头

图1-5 输入法附加组件配置

; 2、 语音输入

语音输入能以避免键盘输入的方式将用户想要进行的操作,通过口述的方式进行执行。在很多时候,它都是一种非常方便的工具。统信UOS系统中有两种语音输入的方式,一是通过桌面智能助手输入,二是通过某些应用软件中的语音功能输入。

桌面智能助手是预装应用。打开桌面智能助手输入,只需单击任务栏上的桌面智能助手图标,或是在键盘上按快捷键【Super】(win)+ 【Q】 即可打开如图2-1
opencv人脸识别(一)调用笔记本摄像头

图2-1 打开桌面语音助手

计算机连接录音设备后,可直接与桌面语音助手进行对话,让计算机执行一些简单操作,如打开【应用商店】,更换壁纸,调节屏幕亮度等如图2-2。等桌面智能助手界面的输入框出现后,也可以输入文字指令,让计算机执行指定操作。
opencv人脸识别(一)调用笔记本摄像头

图2-2 运用桌面智能助手

3、 WPS办公软件的使用

WPS(Word Processing System),中文意为文字编辑系统,是金山软件公司的一种办公软件。它集编辑与打印为一体,具有丰富的全屏幕编辑功能,而且还提供了各种控制输出格式及打印功能,使打印出的文稿即美观又规范,基本上能满足各界文字工作者编辑、打印各种文件的需要和要求。
在应用商店或命令行安装完WPS后,打开WPS应用程序。进入到WPS首页界面如图3-1
opencv人脸识别(一)调用笔记本摄像头

图3-1 打开WPS

单击左边任务栏中的【从模板中新建】,进入到"新建"窗口如图3-2
opencv人脸识别(一)调用笔记本摄像头

图3-2 打开"新建"窗口

单击【空白文档】下的框框,新建一个空白文档如图3-3
opencv人脸识别(一)调用笔记本摄像头

图3-3 打开编辑页面

WPS中常用的功能在统信UOS均可使用,包括新建,打开,保存,另存为,打印等。单击左上角任务栏的【文件】可以找到实现这些功能的选项如图3-4。其使用方法与Windows中的WPS差别不大。
opencv人脸识别(一)调用笔记本摄像头

图3-4 任务栏功能

; 4、 编辑器

文本编辑器是一个简单的文本编辑工具。您可以用它书写简单的文本文档,也可以使用它的高级特性,让它成为一个代码编辑工具,支持代码语法高亮。如图4-1
opencv人脸识别(一)调用笔记本摄像头

图4-1 编辑器界面

查看快捷键
在文本编辑器界面,使用快捷键 Ctrl + Shift + ? 打开快捷键预览界面,用户也可以在设置界面查看快捷键。熟练地使用快捷键,将大大提升用户的操作效率,如图4-2
opencv人脸识别(一)调用笔记本摄像头

图4-2 编辑器快捷键

制作成员: 赖裕新
排版: 赖裕新
初审: 蔡君贤
复审: 二月二
opencv人脸识别(一)调用笔记本摄像头

点击下方"正月十六工作室"查看更多学习资源

正月十六工作室

Original: https://blog.csdn.net/hjx020/article/details/120818258
Author: 正月十六工作室
Title: 信创操作系统--统信UOS桌面版(文档处理:输入法、语音输入法、WPS、文本编辑器)

相关阅读2

Title: Ubuntu18.04+ZED SDK安装+ZED Python API+zed ros wrapper安装 手把手详细教程

1.安装前准备

1.ubuntu显卡驱动要有,没有的可以搜索如何安装ubuntu显卡驱动,教程很多,这里不再详细说明

2.ROS需要提前安装好,可以搜索ubuntu如何安装ROS。我这里安装的是ROS Melodic

2.安装ZED SDK

2.1CUDA安装

因为ZED的运行必须需要CUDA,所以第一步先安装CUDA,版本可以自己根据需要选取,都可。

CUDA下载链接如下:CUDA Toolkit Archive | NVIDIA Developer

2.2ZED SDK安装

ZED SDK下载版本的选取很重要,如果需要在ROS里运行,一定要看以下这个链接里面的版本要求:GitHub - stereolabs/zed-ros-wrapper: ROS wrapper for the ZED SDK,他对SDK的版本有要求,我写文章的时候它的要求是SDK>=3.7.除此之外就根据ubuntu版本和CUDA版本选择即可。

第一个方法,到ZED官网下载,有梯子的还好,我反正是加载不出来

ZED官网链接:https://www.stereolabs.com/developers/release/

第二个方法,复制该链接到迅雷里面下载,亲测特别好使,建议使用方法二

https://download.stereolabs.com/zedsdk/3.7/cu111/ubuntu18

其中SDK的版本我选择的是3.7,根据zed ros wrapper的需求选的,cu111是根据CUDA版本选择,如果你是CUDA10.1,则改为cu101即可,其他同理。ubuntu如果是20版本的则改为ubuntu20。迅雷下载完我的文件名字是ubuntu18,改成ZED_SDK_Ubuntu18_cuda11.1_v3.7.0.run形式即可。运行下述代码进行安装。

chmod +x ZED_SDK_Ubuntu18_cuda11.1_v3.7.0.run
./ZED_SDK_Ubuntu18_cuda11.1_v3.7.0.run

安装时第一个是一个使用说明,在命令行窗口鼠标滚到底按一下q就行了。后面全是y即可。

这里有个问题,如果没有梯子,其中安装过程中的ZED Python API会因为网络而下载不了。

解决方法如下:

可以上github上下载zed-python-api ,链接如下:https://github.com/stereolabs/zed-python-api

下载之后解压,运行以下代码安装

cd zed-python-api/src
pip3 install -r requirements.txt
python3 setup.py build
python3 setup.py install

安装完,在命令窗口输入以下代码测试是否安装成功

python
import pyzed

到这里ZED SDK就安装完成了,让我们看一下实际的效果吧

cd /usr/local/zed/tools
./ZED_Depth_Viewer

opencv人脸识别(一)调用笔记本摄像头

3.安装zed ros wrapper

首先创建一个工作空间,代码如下

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ..

catkin_make

然后开始安装,代码如下

cd ~/catkin_ws/src
git clone --recursive https://github.com/stereolabs/zed-ros-wrapper.git
git clone https://github.com/stereolabs/zed-ros-examples.git
cd ../
rosdep install --from-paths src --ignore-src -r -y
catkin_make -DCMAKE_BUILD_TYPE=Release
source ./devel/setup.bash

在RVIZ里显示ZED数据

cd catkin_ws/
source devel/setup.bash
roslaunch zed_display_rviz display_zed.launch

opencv人脸识别(一)调用笔记本摄像头

Original: https://blog.csdn.net/slamer111/article/details/124360452
Author: CVplayer111
Title: Ubuntu18.04+ZED SDK安装+ZED Python API+zed ros wrapper安装 手把手详细教程

相关阅读3

Title: 图解Pandas,创建数据对象 | 图文第2篇

01写在前面

大家好,我是阳哥,欢迎来到「Python数据之道」。

本次是《图解Pandas》系列图文内容的 第 02 篇,主要是对Pandas中 创建数据对象 进行介绍。

本文是付费阅读文章,付费阅读内容包括《图解Pandas》图文干货内容、可以在电脑端观看的视频以及配套的源代码等。
此外,为避免各种不必要的麻烦,微信没有退款机制,本文也不会退款,付费前请谨慎。

Pandas 是 Python数据分析中用的最多的工具,为了大家能够更好地学习 Pandas,阳哥开始制作一系列 《图解Pandas》 的内容。

《图解Pandas》 最主要的目标,是以动态图片、视频等方式呈现,实现从原理步骤拆解 Pandas 在数据处理过程中的主要知识点,以便大家能进一步了解 Pandas 的使用,形象地介绍 Pandas,进而使大家喜欢上 Pandas 这个得心应手的工具。

《图解Pandas》图文专题,最新的内容可以点击下面的图片进行查看。

在本文编写时,《图解Pandas》系列已发布的图文如下:

*

02Python环境

今天主要是对 Pandas 中 如何创建数据对象进行介绍。在微信视频号「Python数据之道」中发布的视频如下,视频时长约4分30秒,大家可以前往观看:

开始之前,按照惯例先介绍下本次内容涉及的Python环境,如下:

  • Python 3.8
  • Pandas 1.4.1
  • numpy 1.22.3

我是在 jupyter notebook 中运行代码的,首先引入相关 Python 库:

import pandas as pd
import numpy as np

print(f'pandas version:{pd.__version__}')
print(f'numpy version:{np.__version__}')

03Series

在Pandas中,主要包括两种类型的数据,一种是 Series,另一种是 DataFrame,DataFrame 中文翻译称之为"数据框"。创建数据对象也将围绕这两种数据类型来展开。

首先,咱们来学习如何创建 Series 数据,常见的方法有以下几种,根据不同的场景,选择合适的使用即可。在代码层面,一般是通过 pd.Series() 方法来实现。
opencv人脸识别(一)调用笔记本摄像头

通过列表创建 Series

第一种是通过列表创建Series,如图所示,左边为代码,右边为数据结果。
opencv人脸识别(一)调用笔记本摄像头

可以同时指定索引值。此外,还可以设置 name 参数值,以及其他的一些参数。

设置索引:

s2 = pd.Series([1,2,3],index=['a','b','c'])
s2

同时设置索引和name参数:

s3 = pd.Series(
    [1,2,3],
    index=['a','b','c'],
    name='hello'
    )
s3

通过字典创建 Series

第二种是通过字典创建Series,从实现结果来看,字典中的key值为Series的索引。
opencv人脸识别(一)调用笔记本摄像头

通过 ndarray 创建 Series

第三种是通过 numpyarray 数据来创建 Series,这里通过 random 函数来创建一个一维array数据,接着创建Series。
opencv人脸识别(一)调用笔记本摄像头

通过标量来创建 Series

第四种是通过标量来创建Series,所谓标量,也可以理解为是具体的单个数据。这里的标量为 1,通过设置索引的长度,可以控制创建数据的行数。
opencv人脸识别(一)调用笔记本摄像头

创建空的 Series

第五种是创建空的Series,这是一种特殊的方法,本身不会创建出具体的数据值,但空的Series也是有它特定的用途的。
opencv人脸识别(一)调用笔记本摄像头

04DataFrame

接下来,咱们来学习如何创建数据框,常用的方法有以下几种。在代码层面一般是通过 pd.DataFrame() 方法来实现。
opencv人脸识别(一)调用笔记本摄像头

创建空的 DataFrame

先来看如何创建空的数据框,代码如下所示。空的数据框,用途还是挺广泛的,在数据合并、数据采集等方面都可以使用。
opencv人脸识别(一)调用笔记本摄像头

通过 ndarray 创建 DataFrame

第2种是通过 numpy 的 array 数据来创建数据框,这里通过numpy 的random函数来创建一个二维array数据,接着创建数据框。

np.random.seed(0)
arr = np.random.randint(10,size=[5,3])
df = pd.DataFrame(arr,columns=list('abc'))
df

创建的数据如下:
opencv人脸识别(一)调用笔记本摄像头

也可以通过由 元组(tuple)组成的 array来创建数据框。需要注意的是,在代码方面,这里使用的是 pd.DataFrame.from_records() 方法。

# from_records
arr = np.array(
    [
        ("Lemon", "长沙", 80, 90),
        ("Jack", "上海", 90, 75),
        ("Peter", "深圳", 60, 80),
    ]
)
df = pd.DataFrame.from_records(
    arr, 
    columns=["name", "city", "math", "chem"]
    )
df

数据结果如下:
opencv人脸识别(一)调用笔记本摄像头

不过,使用 pd.DataFrame() 也可以实现同样的结果。

arr = np.array(
    [
        ("Lemon", "长沙", 80, 90),
        ("Jack", "上海", 90, 75),
        ("Peter", "深圳", 60, 80),
    ]
)
df = pd.DataFrame(
    arr, 
    columns=["name", "city", "math", "chem"]
    )
df

通过列表创建数据框

第3种是通过列表创建数据框,可以细分为几种不同的方法。
opencv人脸识别(一)调用笔记本摄像头

一维列表

Original: https://blog.csdn.net/lemonbit/article/details/123492157
Author: Python数据之道
Title: 图解Pandas,创建数据对象 | 图文第2篇