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. POJ 2104 K-th Number(区间第k大数)(平方切割,归并树,划分树)
  2. 反激式开关电源变压器设计
  3. JAVA-JSP内置对象之pageContext对象取得不同范围属性
  4. 在线python编程编译器-编译器python
  5. treeview托拽和动态添加节点以及treeview和xml的交互的实现
  6. SigmaStar SSD202 openwrt 系统下ubi根文件系统挂载过程
  7. 一口气搞懂「链表」,就靠这20+张图了
  8. wordpress mysql 挂了_大神们,诊断一下,wampserver的mysql老是挂掉!
  9. 设计模式 -- 亨元模式(FlyWeight Pattern)
  10. python 可迭代对象_Python3学习笔记(十四):可迭代对象、迭代器和生成器
  11. jquery系列教程3-DOM操作全解
  12. 使用ionic2开发一个登录功能
  13. Unity3d动画脚本 Animation Scripting(深入了解游戏引擎中的动画处理原理)
  14. 用 C# 绘制曲线图(Curve图,增加自动适应和多曲线绘制)
  15. 基于Labview的瀑布图的生成
  16. Having dreams is what makes life tolerable.
  17. Java 进程启停及诊断 Jarboot大改版、焕然一新
  18. matplotlib:使用子图实现简易象形图
  19. matlab交互式程序设计示例,matlab交互式程序设计示例
  20. prometheus 钉钉告警

热门文章

  1. 安装并配置maven
  2. 游戏编程笔记-起步(三)-贪吃蛇游戏实现
  3. DTOJ#4748. 钢镚
  4. 微信小程序——与后端通信
  5. PHPExcel 导出的数据Excel打开出现 部分内容有问题是否让我们尽量尝试恢复的问题解决方案
  6. 常用的android自动化测试技术
  7. fractal 分形维数 盒子维 纹理特征
  8. 一号本OneXplayer掌机进游戏卡死,进游戏按手柄卡死
  9. Ambari 2.7.3配置指南
  10. Idea快捷键设置与添加或修改