OpenCV全称是Open source Computer Vision Library(开放源代码计算机视觉库),是一个用于图像处理、分析、机器视觉方面的开源函数库,提供了很多图像处理的工具和可以直接使用的API接口。

OpenCV自带了函数detectMultiScale()可以实现对行人和人脸的检测,实现简单,但识别效果相对较差。

行人检测

在行人检测上,OpenCV采用的是HOG(特征检测算法)+SVM算法。

import cv2

def is_inside(o,i):

ox,oy,ow,oh = o

ix,iy,iw,ih = i

return ox>ix and oy>iy and ox+ow

def draw_person(image,person):

x,y,w,h=person

cv2.rectangle(image,(x,y),(x+w,y+h),(255,0,0),2)

# 使用opencv的hog特征进行行人检测

img = cv2.imread("test.jpg")

hog = cv2.HOGDescriptor()

hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())

found, w = hog.detectMultiScale(img)

print(found,w)

foundList = []

for ri,r in enumerate(found):

flag = 0

for qi,q in enumerate(found):

if ri != qi and is_inside(r,q):

flag = 1

if(flag == 0):

foundList.append(r)

for person in foundList:

draw_person(img,person)

cv2.imwrite("./test1.jpg",img)

检测效果如下:

![](https://img2018.cnblogs.com/blog/1608161/201904/1608161-20190413202629374-1825910823.jpg)

人脸检测

在人脸检测上,OpenCV采用的是Harr特征,Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。

import cv2

# 使用人脸识别分类器

classfier = cv2.CascadeClassifier("haarcascade_frontalface_alt2.xml")

# 读取图片

image = cv2.imread("face.jpg")

# 转为灰度图

gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

faces = classfier.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=5,minSize=(3,3))

print("发现{0}个人脸!".format(len(faces)))

for faceRect in faces:

x,y,w,h=faceRect

cv2.rectangle(image,(x,y),(x+w,y+w),(0,255,0),2)

cv2.imwrite("./face1.jpg",image)

检测效果如下:

pythonopencv检测行人_【图像处理】使用OpenCV实现人脸和行人检测相关推荐

  1. python人脸口罩识别_基于Python+OpenCV的人脸口罩识别检测

    以下编程在Jupyter notbook平台上进行 一.OpenCV下载安装 二.人脸口罩数据集下载处理 (一)人脸口罩数据集下载 下载人脸口罩数据集的目的是利用OpenCV进行模型训练,这里采用口罩 ...

  2. opencv 画矩形_图像处理之OpenCV的基础使用补充

    基础到进阶,跨度有点大,我们还是先踏实基础吧.对图像的处理实际上还是对图像像素矩阵的处理,当然还需要点想象空间.上一篇文章我们介绍了opencv的最基本用法,能够实现图片的加载.生成.读取像素矩阵.三 ...

  3. 用python做视觉检测系统_教你用 Python 做一个物体检测系统

    在本文中,我们将了解物体检测技术是什么以及可以用来解决此领域问题的几种不同方法,接着深入研究在Python中如何构建我们自己的对象检测系统.在本文结束时,您将拥有足够的知识来独自迎接不同的物体检测挑战 ...

  4. 实战6:基于OpenCV的人脸口罩识别检测详细教程

    背景介绍:     从19年疫情爆发到现在,佩戴口罩对大家来说已是常态.应运而生的就有了很多相关应用,如病毒发展预测.口罩佩戴检测以及戴口罩的人脸识别等. 今天介绍的人脸口罩佩戴检测系统主要使用Ope ...

  5. python opencv生成tf模型_基于TensorFlow+ Opencv 的人脸识别 和模型训练

    一.准备工作 本次实例的anaconda 环境 (有需要的自己导入anaconda) 链接:https://pan.baidu.com/s/1IVt2ap-NYdg64uHSh-viaA 提取码:g7 ...

  6. 人脸检测算法_目前最强!开源人脸检测算法:RetinaFace

    加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总 ...

  7. Shi-tomasi角点检测python实现及基于opencv实现 (角点检测、非极大值抑制)

    写在前面: 已经是七月中旬,黄宁然,你依然在这里. 参考文献镇楼: [1]龚思宇宙,基于平面模板的摄像机标定及相关技术研究 [2]汪洋,扫地机器人定位算法设计与嵌入式系统实现 [3]Denny#,[o ...

  8. 基于opencv的人脸识别和检测

    人脸识别作为一个热门项目,目前有多种方法实现,利用python和opencv来实现,是一个比较简单的项目. 1.环境配置 windows平台 python版本:3.8.6 pycharm版本:2019 ...

  9. 姿态检测 树莓派_基于深度学习的树莓派老人摔倒检测系统的制作方法

    本发明属于电子器件技术领域,涉及基于深度学习的树莓派老人摔倒检测系统. 背景技术: 日益庞大的老年群体已成为人们关注的焦点.由于老年人身体活动不便等特点,摔倒已成为我国人员伤亡的第四位原因,而意外摔倒 ...

最新文章

  1. win7 计算机库 桌面,【备忘】win7下再硬盘安装win7(桌面库和家庭组图标删除)...
  2. pyecharts第九节、旭日图(现代饼图)
  3. Android学习记录1--布局的类型
  4. 常用开源工具、框架收藏
  5. LeetCode 695. Max Area of Island javascript解决方案
  6. c语言中整形精确到后面几位,C语言中普通整型变数在记忆体中占几个位元组
  7. wchar_t与char转换(转载)
  8. DSP5509项目之用FFT识别钢琴音调(5)之开始傅里叶变换
  9. LeetCode 153. 寻找旋转排序数组中的最小值(二分)
  10. 基于设备树的TQ2440的中断(2)
  11. tomcat 远程调试
  12. open 读Txt文件
  13. 班级抽签小程序——项目总结
  14. 基于Matpower的电力系统潮流计算原理及仿真设计(详细)
  15. 微信小程序点击事件和长按事件
  16. 正则校验6-18位字母加数字密码
  17. Typo3 CVE-2019-12747 反序列化漏洞分析
  18. springboot +mybatis实现多表一对一查询
  19. JAVA重复图片_〔批处理〕处理重复图片
  20. mysql投影和选择区别_关系运算里面,“选择”和“投影”区分?

热门文章

  1. 边境突围三排套路,你Get到了吗?
  2. 超市3D无人收银机来了,别人刷脸买单,你还在傻傻排队吗?
  3. 开通快手磁力金牛遇到这些问题怎么解决?
  4. 二维粗糙海面matlab,一维导体粗糙海面与二维导体目标的电磁散射仿真方法
  5. 【分享NVIDIA GTC大会干货】与Jetson嵌入式平台工程师的深度挖掘问答
  6. C语言结构体指针强转
  7. 【C++】题目:输入三个整数x,y,z,请把这三个数由小到大输出。
  8. python flask框架详解
  9. 程序员被女朋友拉黑之后...该怎么办?
  10. 河道水文标尺监测系统 OpenCv