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开发的nosql数据库CodernityDB介绍和使用实例
Oct 23 Python
Python中利用sorted()函数排序的简单教程
Apr 27 Python
使用Python发送各种形式的邮件的方法汇总
Nov 09 Python
Python复制文件操作实例详解
Nov 10 Python
python 性能优化方法小结
Mar 31 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
May 08 Python
Python之多线程爬虫抓取网页图片的示例代码
Jan 10 Python
Python数据类型之List列表实例详解
May 08 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
Jun 26 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
Aug 19 Python
Python Dataframe常见索引方式详解
May 27 Python
Python之matplotlib绘制饼图
Apr 13 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
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
分享10篇优秀的jQuery幻灯片制作教程及应用案例
2011/04/16 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
2016/04/18 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
微信小程序 http请求的session管理
2017/06/07 Javascript
微信小程序实现美团菜单
2018/06/06 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
python中的多线程实例教程
2014/08/27 Python
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
python实现下载文件的三种方法
2017/02/09 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
纯CSS实现设置半个字符的样式
2014/07/03 HTML / CSS
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
2013/01/26 面试题
中国央视网签名寄语
2014/01/18 职场文书
学校就业推荐信范文
2014/05/19 职场文书
工商管理自荐书
2014/07/06 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
护理培训心得体会
2016/01/22 职场文书
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS
Python中文分词库jieba(结巴分词)详细使用介绍
2022/04/07 Python