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 相关文章推荐
shelve  用来持久化任意的Python对象实例代码
Oct 12 Python
Python实现的多线程http压力测试代码
Feb 08 Python
Python中单例模式总结
Feb 20 Python
Python中将dataframe转换为字典的实例
Apr 13 Python
Python 面试中 8 个必考问题
Nov 16 Python
Python设计模式之迭代器模式原理与用法实例分析
Jan 10 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
Aug 20 Python
python装饰器使用实例详解
Dec 14 Python
解决numpy矩阵相减出现的负值自动转正值的问题
Jun 03 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
Dec 09 Python
Python用SSH连接到网络设备
Feb 18 Python
如何利用Python实现n*n螺旋矩阵
Jan 18 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/07 PHP
PHP字符串 ==比较运算符的副作用
2009/10/21 PHP
PHP高级对象构建 工厂模式的使用
2012/02/05 PHP
PHP处理JSON字符串key缺少双引号的解决方法
2014/09/16 PHP
web 页面分页打印的实现
2009/06/22 Javascript
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
基于jquery实现的鼠标拖拽元素复制并写入效果
2011/08/23 Javascript
在Windows上安装Node.js模块的方法
2011/09/25 Javascript
jQuery随机切换图片的小例子
2013/04/18 Javascript
jquery选择器原理介绍($()使用方法)
2014/03/25 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
理解 JavaScript Scoping & Hoisting(二)
2015/11/18 Javascript
JavaScript创建对象的方式小结(4种方式)
2015/12/17 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
jquery easyui validatebox remote的使用详解
2016/11/09 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
python 读写中文json的实例详解
2017/10/29 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
纯CSS3制作的鼠标悬停时边框旋转
2017/01/03 HTML / CSS
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
STRATHBERRY苏贝瑞包包官网:西班牙高级工匠手工打造
2020/11/10 全球购物
儿科主治医生个人求职信
2013/09/23 职场文书
管理专员自荐信
2014/01/26 职场文书
高一政治教学反思
2014/01/28 职场文书
毕业生个人求职自荐信
2014/02/26 职场文书
新闻学专业求职信
2014/07/28 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
九九重阳节致辞
2015/07/31 职场文书
python实现简单的名片管理系统
2021/04/26 Python