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入门及进阶笔记 Python 内置函数小结
Aug 09 Python
Python中自定义函数的教程
Apr 27 Python
Python基于pygame实现的弹力球效果(附源码)
Nov 11 Python
使用paramiko远程执行命令、下发文件的实例
Oct 01 Python
对python字典过滤条件的实例详解
Jan 22 Python
Python中的正则表达式与JSON数据交换格式
Jul 03 Python
Python学习笔记之lambda表达式用法详解
Aug 08 Python
Python线程障碍对象Barrier原理详解
Dec 02 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
Dec 11 Python
python编写微信公众号首图思路详解
Dec 13 Python
python cv2截取不规则区域图片实例
Dec 21 Python
使用Python构造hive insert语句说明
Jun 06 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防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
2009/10/11 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
使用JSLint提高JS代码质量方法分享
2013/12/16 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
jQuery控制cookie过期时间的方法
2015/04/07 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
bootstrap table复杂操作代码
2016/11/01 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
2017/09/02 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
python实现基本进制转换的方法
2015/07/11 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
记一次python 内存泄漏问题及解决过程
2018/11/29 Python
django框架防止XSS注入的方法分析
2019/06/21 Python
pygame实现贪吃蛇游戏(下)
2019/10/29 Python
Python socket聊天脚本代码实例
2020/01/02 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
Python 忽略文件名编码的方法
2020/08/01 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
英国假发网站:Hothair
2018/02/23 全球购物
施工安全协议书
2013/12/11 职场文书
平安建设工作方案
2014/06/02 职场文书
小学教师培训方案
2014/06/09 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
部门经理迟到检讨书
2015/02/16 职场文书
校本研修个人总结
2015/02/28 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
python scipy 稀疏矩阵的使用说明
2021/05/26 Python
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL