概述:

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库

为什么有OpenCV? 计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉软件大概有以下三种:

1、研究代码(慢,不稳定,独立并与其他库不兼容)

2、耗费很高的商业化工具(比如Halcon, MATLAB+Simulink)

3、依赖硬件的一些特别的解决方案(比如视频监控,制造控制系统,医疗设备)这是如今的现状,而标准的API将简化计算机视觉程序和解决方案的开发,OpenCV致力于成为这样的标准API。

OpenCV致力于真实世界的实时应用,通过优化的C代码的编写对其执行速度带来了可观的提升,并且可以通过购买Intel的IPP高性能多媒体函数库(Integrated

Performance

Primitives)得到更快的处理速度。右图为OpenCV与当前其他主流视觉函数库的性能比较。

-------百度百科

所以说opencv就是做图像处理的,而我们要实现的人脸识别,opencv库是必不可少的。

原理:opencv是以图片中心为初始点,以一个缩放因子进行慢慢的缩放,在范围内进行识别,缩放因子必须适宜,太大可能会导致识别不出来

1、下载库

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

2、引入依赖

opencv的引入不是直接引入opencv,而是引入cv2

import cv2

3、代码

my = cv2.imread('img/my.jpg')
face_detector = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml")
faces = face_detector.detectMultiScale(my)
for x,y,w,h in faces:
cv2.rectangle(my,pt1=(x,y),pt2=(x+w,y+h),color=[0,0,225],thickness=2)
cv2.imshow("my",my)
cv2.waitKey(0)
cv2.destroyAllWindows()

注意: haarcascade_frontalface_alt.xml文件时python安装目录下Lib\site - packages\cv2\data,需要将该文件复制到项目内,不复制的话需要绝对路径。

问题:

描述:当图片太大或者分辨过高时,可能会遇到只能显示图片的部分

解决:加入代码 my = cv2.resize(my,None,fx=0.5,fy=0.5)或者cv2.namedWindow('my', cv2.WINDOW_NORMAL) 不过有其他显示问题,可能会导致图片显示变形

源代码:

my = cv2.imread('img/my.jpg')
my = cv2.resize(my,None,fx=0.5,fy=0.5)
# 人脸特征数据的数据包
face_detector = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml")
# 图片进行人脸数据对比
# scaleFactor:缩放因子,默认1.3,
# minNeighbors:最小邻居,默认为3
faces = face_detector.detectMultiScale(my)
# print(faces)
for x,y,w,h in faces:
# pt1:人脸左上角点
# pt2:人脸右下角点
cv2.rectangle(my,pt1=(x,y),pt2=(x+w,y+h),color=[0,0,225],thickness=2)
# cv2.namedWindow('my', cv2.WINDOW_NORMAL)
cv2.imshow("my",my)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果图:


作者

1、作者个人网站

2、作者CSDN

3、作者博客园

4、作者简书

【python人脸识别】使用opencv识别图片中的人脸的更多相关文章

  1. Python 3 利用 Dlib 19.7 实现摄像头人脸识别

    0.引言 利用python开发,借助Dlib库捕获摄像头中的人脸,提取人脸特征,通过计算欧氏距离来和预存的人脸特征进行对比,达到人脸识别的目的: 可以自动从摄像头中抠取人脸图片存储到本地: 根据抠取的 ...

  2. OpenCV 学习笔记 05 人脸检测和识别 AttributeError: module 'cv2' has no attribute 'face'

    1 环境设置: win10 python 3.6.8 opencv 4.0.1 2 尝试的方法 在学习人脸识别中,遇到了没有 cv2 中没有 face 属性.在网上找了几个方法,均没有成功解决掉该问题 ...

  3. OpenCV 学习笔记 05 人脸检测和识别

    本节将介绍 Haar 级联分类器,通过对比分析相邻图像区域来判断给定图像或子图像与已知对象是否匹配. 本章将考虑如何将多个  Haar 级联分类器构成一个层次结构,即一个分类器能识别整体区域(如人脸) ...

  4. Python 实现的猫脸识别、人脸识别器。

    代码地址如下:http://www.demodashi.com/demo/13071.html 前言: OpenCV是开源的跨平台计算机视觉库,提供了Python等语言的接口,实现了图像处理和计算机视 ...

  5. Opencv识别图中人脸

    #!/usr/bin/python #coding=utf-8 # 识别图片中的人脸 import face_recognition jobs_image = face_recognition.loa ...

  6. OpenCV学习 物体检测 人脸识别 填充颜色

    介绍 OpenCV是开源计算机视觉和机器学习库.包含成千上万优化过的算法.项目地址:http://opencv.org/about.html.官方文档:http://docs.opencv.org/m ...

  7. 转:基于开源项目OpenCV的人脸识别Demo版整理(不仅可以识别人脸,还可以识别眼睛鼻子嘴等)【模式识别中的翘楚】

    文章来自于:http://blog.renren.com/share/246648717/8171467499 基于开源项目OpenCV的人脸识别Demo版整理(不仅可以识别人脸,还可以识别眼睛鼻子嘴 ...

  8. keras系列︱人脸表情分类与识别:opencv人脸检测+Keras情绪分类(四)

    引自:http://blog.csdn.net/sinat_26917383/article/details/72885715 人脸识别热门,表情识别更加.但是表情识别很难,因为人脸的微表情很多,本节 ...

  9. 基于OpenCV读取摄像头进行人脸检测和人脸识别

    前段时间使用OpenCV的库函数实现了人脸检测和人脸识别,笔者的实验环境为VS2010+OpenCV2.4.4,opencv的环境配置网上有很多,不再赘述.检测的代码网上很多,记不清楚从哪儿copy的 ...

随机推荐

  1. selenium获取页面源码,判断是否存在指定内容,执行不同的操作

    本案例用于解决selenium UI自动化,判断页面是否存在指定文字,执行后续不同的操作 主要用到browser.page_source 如,保存百度分享文件到自己的百度盘中,会出现文件被删除无法保存 ...

  2. MySql配置环境变量

    完成后安装好MySQL,为MySQL配置环境变量. 0)在我的电脑上点击右键选择属性-->高级系统设置-->环境变量1)新建MYSQL_HOME变量,并配置:D:\Develop\mysq ...

  3. 浅谈DFS,BFS,IDFS,A*等算法

    搜索是编程的基础,是必须掌握的技能.--王主任 搜索分为盲目搜索和启发搜索 下面列举OI常用的盲目搜索: 1.dijkstra 2.SPFA 3.bfs 4.dfs 5.双向bfs 6.迭代加深搜索( ...

  4. python笔记11

    今日内容 函数小高级 lambda 表达式 内置函数 内容回顾 函数基本结构 参数 形参 基本参数:def func(a1,a2):pass 默认值:def func(a1,a2=123):pass ...

  5. 对比PXC集群与主从架构在一致性上的区别

    在上一篇文章中,已经完成了三节点PXC集群的搭建,现在搭建node3的从库node4,并且有如下测试: 搭建node3的从库,代号node4 测试1: 先断开node3节点,然后在node1构造数据, ...

  6. Percona-XtraDB-Cluster-57 安装操作记录

    一.PXC集群的一些特性 Percona官网服务器位于境外,访问很困难.本次安装使用的是其官网提供的最新版本5.7.23-31.31.1.el7,当前日期为2018.10.10. PXC集群中,存储引 ...

  7. python函数2(返回值、传递列表...)

    python函数2(返回值.传递列表...) 1.返回值 1.1.返回简单的值 #返回简单值 def get_formatted_name(first_name,last_name): "& ...

  8. css- :before :after

    :before和:after的作用就是在指定的元素内容(而不是元素本身)之前或者之后插入一个包含content属性指定内容的行内元素,最基本的用法如下: #example:before { conte ...

  9. Pandas Statistical Functions

    import pandas as pd import random import numpy as np n_rows=5 n_cols=2 df = pd.DataFrame(np.random.r ...

  10. WSL2+Docker部署RabbitMQ以及在Asp.net core 中使用RabbitMQ示例(1)

    本文主要在于最近因疫情不能外出,在家研究的一些技术积累. 主要用到的技术以及知识点: WSL 2 WSL 2+Docker Docker+RabbitMQ 在ASP.NET Core中使用Rabbit ...