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 判断一个进程是否存在
Apr 09 Python
用Python编写一个简单的俄罗斯方块游戏的教程
Apr 03 Python
Python中with及contextlib的用法详解
Jun 08 Python
python读取文本中数据并转化为DataFrame的实例
Apr 10 Python
python日期时间转为字符串或者格式化输出的实例
May 29 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
Python实现电视里的5毛特效实例代码详解
May 15 Python
带你学习Python如何实现回归树模型
Jul 16 Python
Python非单向递归函数如何返回全部结果
Dec 18 Python
python 基于selectors库实现文件上传与下载
Dec 31 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
Jan 05 Python
详解MindSpore自定义模型损失函数
Jun 30 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 字符转义 注意事项
2009/05/27 PHP
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
PHP删除字符串中非字母数字字符方法总结
2019/01/20 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
JavaScript字符串常用的方法
2016/03/10 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
详解Django中间件执行顺序
2018/07/16 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
2018/10/11 Python
情人节快乐! python绘制漂亮玫瑰
2020/08/18 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
Shell编程面试题
2016/05/29 面试题
综合测评自我鉴定
2013/10/08 职场文书
拓展培训心得体会
2014/01/04 职场文书
外贸业务员工作职责
2014/01/06 职场文书
卫校中专生的自我评价
2014/01/15 职场文书
大学生校园创业计划书
2014/02/08 职场文书
保护地球的标语
2014/06/17 职场文书
年终晚会活动方案
2014/08/21 职场文书
商务考察邀请函模板
2015/02/02 职场文书
应届毕业生自荐信
2015/03/04 职场文书
物业接待员岗位职责
2015/04/15 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
Go并发4种方法简明讲解
2022/04/06 Golang