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的webrtc库实现语音端点检测
May 31 Python
Python入门之三角函数sin()函数实例详解
Nov 08 Python
Python编程实现使用线性回归预测数据
Dec 07 Python
Python代码缩进和测试模块示例详解
May 07 Python
Django 中使用流响应处理视频的方法
Jul 20 Python
Django关于admin的使用技巧和知识点
Feb 10 Python
快速解决jupyter notebook启动需要密码的问题
Apr 21 Python
django在开发中取消外键约束的实现
May 20 Python
Python类super()及私有属性原理解析
Jun 15 Python
Python改变对象的字符串显示的方法
Aug 01 Python
python中spy++的使用超详细教程
Jan 29 Python
Python制作春联的示例代码
Jan 22 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 反向排序和随机排序代码
2010/06/30 PHP
php session安全问题分析
2011/06/24 PHP
关于使用coreseek并为其做分页的介绍
2013/06/21 PHP
Apache实现Web Server负载均衡详解(不考虑Session版)
2013/07/05 PHP
百度实时推送api接口应用示例
2014/10/21 PHP
php使用GD创建保持宽高比缩略图的方法
2015/04/17 PHP
php命令行写shell实例详解
2018/07/19 PHP
基础的prototype.js常用函数及其用法
2007/03/10 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
js+HTML5实现视频截图的方法
2015/06/16 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
jQuery上传多张图片带进度条样式(DEMO)
2017/03/02 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
深入浅析Node环境和浏览器的区别
2018/08/14 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
Python画图实现同一结点多个柱状图的示例
2019/07/07 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
jupyter notebook 多行输出实例
2020/04/09 Python
django使用graphql的实例
2020/09/02 Python
CSS3实现曲线阴影和翘边阴影
2016/05/03 HTML / CSS
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
承租经营合作者协议书
2014/10/01 职场文书
幼儿园教师考核评语
2014/12/31 职场文书
政审证明范文
2015/06/19 职场文书
SpringRetry重试框架的具体使用
2021/07/25 Java/Android
HTML基础详解(上)
2021/10/16 HTML / CSS
Golang实现可重入锁的示例代码
2022/05/25 Golang