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 相关文章推荐
仅用500行Python代码实现一个英文解析器的教程
Apr 02 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
Dec 08 Python
学习python类方法与对象方法
Mar 15 Python
浅谈Python 集合(set)类型的操作——并交差
Jun 30 Python
python3实现公众号每日定时发送日报和图片
Feb 24 Python
Python 记录日志的灵活性和可配置性介绍
Feb 27 Python
详解python算法之冒泡排序
Mar 05 Python
通过python实现随机交换礼物程序详解
Jul 10 Python
浅谈keras中loss与val_loss的关系
Jun 22 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
python基于win32api实现键盘输入
Dec 09 Python
Python装饰器详细介绍
Mar 25 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页面实现定时跳转的方法
2014/10/31 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
js验证输入是否为手机号码或电话号码示例
2013/12/30 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
python实现的jpg格式图片修复代码
2015/04/21 Python
python使用super()出现错误解决办法
2017/08/14 Python
PyQt5每天必学之QSplitter实现窗口分隔
2018/04/19 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
Python设计模式之适配器模式原理与用法详解
2019/01/15 Python
django框架F&Q 聚合与分组操作示例
2019/12/12 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
css3的transform中scale缩放详解
2014/12/08 HTML / CSS
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
DHC中国官方购物网站:日本通信销售No.1化妆品
2016/08/20 全球购物
英语师范专业毕业生自荐信
2013/09/21 职场文书
高中生职业生涯规划书
2014/02/24 职场文书
委托书格式
2014/08/01 职场文书
2015年业务员工作总结范文
2015/04/07 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
2016北大自主招生自荐信模板
2016/01/28 职场文书
我家女友可不止可爱呢 公开OP主题曲无字幕动画MV
2022/04/11 日漫