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 爬取微信文章
Jan 30 Python
python批量实现Word文件转换为PDF文件
Mar 15 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
Python tkinter label 更新方法
Oct 11 Python
python3的输入方式及多组输入方法
Oct 17 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
Jun 12 Python
安装完Python包然后找不到模块的解决步骤
Feb 13 Python
详解Anaconda 的安装教程
Sep 23 Python
利用python 下载bilibili视频
Nov 13 Python
Python脚本调试工具安装过程
Jan 11 Python
python上下文管理的使用场景实例讲解
Mar 03 Python
详解Python常用的魔法方法
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
DedeCMS 核心类TypeLink.class.php摘要笔记
2010/04/07 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
php对数组内元素进行随机调换的方法
2015/05/12 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
jQuery 定时局部刷新(setInterval)
2010/11/19 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
2011/02/16 Javascript
Javascript玩转继承(三)
2014/05/08 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
Python常用特殊方法实例总结
2019/03/22 Python
简单了解python协程的相关知识
2019/08/31 Python
详解Anaconda 的安装教程
2020/09/23 Python
如何在pycharm中安装第三方包
2020/10/27 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
PHP如何设置和取得Cookie值
2015/06/30 面试题
写好求职信第一句话的技巧
2013/10/26 职场文书
优秀研究生自我鉴定
2013/12/04 职场文书
自我鉴定怎么写
2013/12/05 职场文书
小学教研工作制度
2014/01/15 职场文书
客服专员岗位职责
2014/02/28 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
施工员岗位职责范本
2015/04/11 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
python基于tkinter制作无损音乐下载工具
2021/03/29 Python
Python Pandas知识点之缺失值处理详解
2021/05/11 Python
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android
java objectUtils 使用可能会出现的问题
2022/02/28 Java/Android