python调用opencv实现猫脸检测功能


Posted in Python onJanuary 15, 2019

Python 小猫检测,通过调用opencv自带的猫脸检测的分类器进行检测。

分类器有两个:haarcascade_frontalcatface.xml和
haarcascade_frontalcatface_extended.xml。可以在opencv的安装目录下找到

D:\Program Files\OPENCV320\opencv\sources\data\haarcascades

小猫检测代码为:

1. 直接读取图片调用

import cv2

image = cv2.imread("cat_04.png")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# load the cat detector Haar cascade, then detect cat faces
# in the input image
detector = cv2.CascadeClassifier("haarcascade_frontalcatface.xml")
#haarcascade_frontalcatface_extended.xml
rects = detector.detectMultiScale(gray, scaleFactor=1.1,
 minNeighbors=10, minSize=(100, 100))
# loop over the cat faces and draw a rectangle surrounding each

print (enumerate(rects))

for (i, (x, y, w, h)) in enumerate(rects):
 cv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)
 cv2.putText(image, "Cat #{}".format(i + 1), (x, y - 10),
 cv2.FONT_HERSHEY_SIMPLEX, 0.55, (0, 0, 255), 2)
 print (i, x,y,w,h)
# show the detected cat faces
cv2.imshow("Cat Faces", image)
cv2.waitKey(1)

检测效果:

python调用opencv实现猫脸检测功能

2. 通过命令控制符调用

也可以通过调用argparse库,进行整体调用

新建cat_detect.py文件

# import the necessary packages
import argparse
import cv2

# construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required=True,

 help="path to the input image")
ap.add_argument("-c", "--cascade", default="haarcascade_frontalcatface_extended.xml", 
 help="path to cat detector haar cascade")

args = vars(ap.parse_args())
#"haarcascade_frontalcatface_extended.xml",

# load the input image and convert it to grayscale
#image = cv2.imread(args["image"])
image = cv2.imread(args["image"])
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# load the cat detector Haar cascade, then detect cat faces

# in the input image
detector = cv2.CascadeClassifier(args["cascade"])
rects = detector.detectMultiScale(gray, scaleFactor=1.1,

 minNeighbors=10, minSize=(120, 120)) # cat good

# loop over the cat faces and draw a rectangle surrounding each
print (enumerate(rects))
for (i, (x, y, w, h)) in enumerate(rects):

 cv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)
 cv2.putText(image, "cat #{}".format(i + 1), (x, y - 10),
 cv2.FONT_HERSHEY_SIMPLEX, 0.55, (0, 0, 255), 2)
# show the detected cat faces
cv2.imshow("Cat Faces", image)
cv2.waitKey(0)

通过“命令控制符”调用

cmd
cd E:\WORK\py\detectCat
E:\WORK\py\detectCat>python cat_detector.py --image cat_07.png

python调用opencv实现猫脸检测功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python optparse模块使用实例
Apr 09 Python
Python实现定时任务
Feb 08 Python
python 换位密码算法的实例详解
Jul 19 Python
Python小游戏之300行代码实现俄罗斯方块
Jan 04 Python
Python面向对象总结及类与正则表达式详解
Apr 18 Python
如何基于python操作excel并获取内容
Dec 24 Python
TFRecord文件查看包含的所有Features代码
Feb 17 Python
基于python3生成标签云代码解析
Feb 18 Python
Anaconda的安装及其环境变量的配置详解
Apr 22 Python
python脚本监控logstash进程并邮件告警实例
Apr 28 Python
深入了解Python装饰器的高级用法
Aug 13 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
Dec 08 Python
python可视化实现代码
Jan 15 #Python
Python饼状图的绘制实例
Jan 15 #Python
Python设计模式之状态模式原理与用法详解
Jan 15 #Python
Python设计模式之适配器模式原理与用法详解
Jan 15 #Python
Python设计模式之备忘录模式原理与用法详解
Jan 15 #Python
matplotlib.pyplot绘图显示控制方法
Jan 15 #Python
python实现彩色图转换成灰度图
Jan 15 #Python
You might like
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
PHP7创建销毁session的实例方法
2020/02/03 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
用jQuery获取IE9下拉框默认值问题探讨
2013/07/22 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
js获取当前路径的简单示例代码
2014/01/08 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
2015/08/21 Javascript
Bootstrap布局组件应用实例讲解
2016/02/17 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
2016/05/07 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
Python with用法:自动关闭文件进程
2019/07/10 Python
Python如何使用27行代码绘制星星图
2020/07/20 Python
Java如何格式化日期
2012/08/07 面试题
Java基础类库面试题
2013/09/04 面试题
庆祝教师节活动方案
2014/01/31 职场文书
高级销售求职信
2014/02/21 职场文书
药剂专业个人求职信范文
2014/04/29 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python
python基于opencv批量生成验证码的示例
2021/04/28 Python