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编写的com组件发生R6034错误的原因与解决办法
Apr 01 Python
利用python代码写的12306订票代码
Dec 20 Python
Python MD5加密实例详解
Aug 02 Python
python3写爬取B站视频弹幕功能
Dec 22 Python
python中的常量和变量代码详解
Jul 25 Python
从请求到响应过程中django都做了哪些处理
Aug 01 Python
Python批处理更改文件名os.rename的方法
Oct 26 Python
Python实现代码统计工具
Sep 19 Python
Python中的四种交换数值的方法解析
Nov 18 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
如何在Python 游戏中模拟引力
Mar 27 Python
在 Python 中使用 7zip 备份文件的操作
Dec 11 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
基于文本的搜索
2006/10/09 PHP
PHP提取中文首字母
2008/04/09 PHP
PHP排序算法的复习和总结
2012/02/15 PHP
php curl post 时出现的问题解决
2014/01/30 PHP
一个经典的PHP文件上传类分享
2014/11/18 PHP
php获取文件名后缀常用方法小结
2015/02/24 PHP
jQuery+PHP实现图片上传并提交功能
2020/07/27 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
如何编写一个完整的Angular4 FormText 组件
2017/11/18 Javascript
微信小程序左右滑动的实现代码
2017/12/15 Javascript
前端MVVM框架解析之双向绑定
2018/01/24 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
在Vue中获取组件声明时的name属性方法
2018/09/12 Javascript
微信小程序自定义单项选择器样式
2019/07/25 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
[00:55]深扒TI7聊天轮盘语音出处3
2017/05/11 DOTA
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
判断网页编码的方法python版
2016/08/12 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
Python遍历文件夹 处理json文件的方法
2019/01/22 Python
sklearn+python:线性回归案例
2020/02/24 Python
党章学习思想汇报
2014/01/14 职场文书
党委干部批评与自我批评发言稿
2014/09/28 职场文书
教师工作表现自我评价
2015/03/05 职场文书
家庭贫困证明
2015/06/16 职场文书