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在linux中输出带颜色的文字的方法
Jun 19 Python
详解详解Python中writelines()方法的使用
May 25 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
Mar 13 Python
发布你的Python模块详解
Sep 15 Python
Python实现购物车功能的方法分析
Nov 10 Python
Python设计模式之代理模式简单示例
Jan 09 Python
Tornado 多进程实现分析详解
Jan 12 Python
python利用selenium进行浏览器爬虫
Apr 25 Python
django 扩展user用户字段inlines方式
Mar 30 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
Aug 19 Python
如何使用Python自动生成报表并以邮件发送
Oct 15 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
Jun 03 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
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
PHP tp5中使用原生sql查询代码实例
2020/10/28 PHP
javascript 操作文件 实现方法小结
2009/07/02 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
获取鼠标在div中的相对位置的实现代码
2013/12/30 Javascript
Javascript 按位与赋值运算符 (&=)使用介绍
2014/02/04 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
Bootstrap DateTime Picker日历控件简单应用
2017/03/25 Javascript
理解Angular的providers给Http添加默认headers
2017/07/04 Javascript
AngularJS 打开新的标签页实现代码
2017/09/07 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
浅谈Angular 观察者模式理解
2018/11/01 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
2019/12/01 Javascript
通过vue刷新左侧菜单栏操作
2020/08/06 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
决策树的python实现方法
2014/11/18 Python
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
在Django中进行用户注册和邮箱验证的方法
2016/05/09 Python
Python实现破解12306图片验证码的方法分析
2017/12/29 Python
Python中return self的用法详解
2018/07/27 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
css3 线性渐变和径向渐变示例附图
2014/04/08 HTML / CSS
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
一份软件工程师的面试试题
2016/02/01 面试题
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
金融学专科生自我鉴定
2014/02/21 职场文书
安全教育感言
2014/03/04 职场文书
幼儿发展评估方案
2014/06/11 职场文书
银行实习推荐信
2015/03/27 职场文书