首先导入需要的cv2库,如果没有的可以在Terminal中使用pip install opencv-python导入opencv的主要库包。

import cv2

使用filepath赋值照片的路径并且使用cv2.imread()读取照片:

filepath = "./1.jpg"

img = cv2.imread(filepath)  # 读取图片

照片的原始图片为:

使用opencv自带的函数cv2.cvtColor()将其转为灰度图:

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 转换灰色

使用opencv自带的函数建立识别分类器和训练分类器,再定义画框的颜色:

# OpenCV猫脸识别分类器
classifier = cv2.CascadeClassifier("./haarcascade_frontalcatface.xml")
color = (0, 255, 0)  # 定义绘制颜色

# 调用识别猫脸
faceRects = classifier.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=3, minSize=(5, 5))

注意:./haarcascade_frontalcatface.xml是Python(anaconda)中本身自带的,如果需要可以在python(anaconda)目录下之间复制到和.py文件同一级目录下,或者使用绝对路径,如果没有找到有可能是版本太低。

判断是否有猫脸,如果是则单独框出每一张猫脸

if len(faceRects):  # 大于0则检测到猫脸
    for faceRect in faceRects:  # 单独框出每一张猫脸
        x, y, w, h = faceRect
        # 框出猫脸
        cv2.rectangle(img, (x, y), (x + h, y + w), color, 2)

使用cv2.imshow()来展示图片,最后关闭所有的Windows。

cv2.imshow("image", img)  # 显示图像
c = cv2.waitKey(10)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果如下所示:

全部代码如下:

import cv2

filepath = "./1.jpg"

img = cv2.imread(filepath)  # 读取图片
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 转换灰色
# OpenCV猫脸识别分类器
classifier = cv2.CascadeClassifier("./haarcascade_frontalcatface.xml")
color = (0, 255, 0)  # 定义绘制颜色

# 调用识别猫脸
faceRects = classifier.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=3, minSize=(5, 5))

if len(faceRects):  # 大于0则检测到猫脸
    for faceRect in faceRects:  # 单独框出每一张猫脸
        x, y, w, h = faceRect
        # 框出猫脸
        cv2.rectangle(img, (x, y), (x + h, y + w), color, 2)

cv2.imshow("image", img)  # 显示图像
c = cv2.waitKey(10)
cv2.waitKey(0)
cv2.destroyAllWindows()

如果账号可直接点复制下面内容:

import cv2filepath = "./1.jpg"img = cv2.imread(filepath)  # 读取图片
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 转换灰色
# OpenCV猫脸识别分类器
classifier = cv2.CascadeClassifier("./haarcascade_frontalcatface.xml")
color = (0, 255, 0)  # 定义绘制颜色# 调用识别猫脸
faceRects = classifier.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=3, minSize=(5, 5))if len(faceRects):  # 大于0则检测到猫脸for faceRect in faceRects:  # 单独框出每一张猫脸x, y, w, h = faceRect# 框出猫脸cv2.rectangle(img, (x, y), (x + h, y + w), color, 2)cv2.imshow("image", img)  # 显示图像
c = cv2.waitKey(10)
cv2.waitKey(0)
cv2.destroyAllWindows()

python使用opencv对猫脸进行检测,并且框出猫脸相关推荐

  1. Python,OpenCV轮廓属性、轮廓检测及绘制

    Python,OpenCV轮廓属性.轮廓检测及绘制 1. 效果图 2. 源码 2.1 轮廓属性 2.2 轮廓特征 参考 这篇博客将介绍OpenCV中的轮廓,轮廓的特征及属性(质心,面积,轮廓,近似轮廓 ...

  2. 使用Python,OpenCV,dlib进行睡意检测(疲劳驾驶检测)

    使用Python,OpenCV,dlib进行睡意检测,可以看做是对上一篇博客眨眼检测的进阶. 使用Python,OpenCV,dlib进行睡意检测 1. 睡意检测依赖及原理 依赖面部检测,面部标志检测 ...

  3. Python基于OpenCV的指针式表盘检测系统(附带源码&技术文档)

    1.背景 指针式机械表盘具有安装维护方便.结构简单.防电磁干扰等诸多优点, 目前广泛应用于工矿企业.能源及计量等部门.随着仪表数量的增加及精密仪表技术的发展,人工判读已经不能满足实际应用需求.随着计算 ...

  4. Python基于Opencv的鱼群密度速度检测系统(源码&教程)

    1.研究背景 智慧渔业是大数据.物联网与人工智能等现代信息技术驱动下的渔业发展新模式,是水产养殖业供给侧结构性改革的重要方式,涉及养殖环境监测.生物环境监测与生物状态监测这几大方面的应用与需求.本文从 ...

  5. CoLab - 图像人脸检测_框出人脸

    CoLab - 图像人脸检测_框出人脸 此文章教你如何使用谷歌Colaboratory实现静止图片的人脸检测和划框框. CoLab最大好处:GPU计算速度快! 注: · 国内登陆Colab需使用到梯梯 ...

  6. python 活体检测_基于Python+Keras+OpenCV实现实时人脸活体检测 | 文末送书

    你在互联网上找到的大多数人脸识别算法和研究论文都会遭受照片***.这些方法在检测和识别来自网络摄像头的图像.视频和视频流中的人脸方面是很是有效,可是他们没法区分现实生活中的面孔和照片上的面孔.这种没法 ...

  7. 基于Python+Keras+OpenCV实现实时人脸活体检测 | 文末送书

    你在互联网上找到的大多数人脸识别算法和研究论文都会遭受照片攻击.这些方法在检测和识别来自网络摄像头的图像.视频和视频流中的人脸方面是非常有效,但是他们无法区分现实生活中的面孔和照片上的面孔.这种无法区 ...

  8. 基于python的移动物体检测_感兴趣区域的移动物体检测,框出移动物体的轮廓 (固定摄像头, opencv-python)...

    感兴趣区域.特定区域.框出移动物体的轮廓.越界检测.入侵物体检测.使用 opencv-python库的函数cv2.findContours.cv2.approxPolyDP.cv2.arcLength ...

  9. Python基于OpenCV实现视频的人脸检测

    前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys import logging as log import datetime as dt ...

最新文章

  1. 为office添加繁简体转换
  2. 今晚8点直播 | 详讲NLP的经典应用实践——文本分类
  3. Android即时通讯与IOS端发送语音的问题。
  4. mysql xa 实现_MySQL数据库分布式事务XA的实现原理分析
  5. SQL语句(二)创建带主键和约束的数据表
  6. div 置底 形成页脚
  7. 使用spring集成的kafka收发消息
  8. 细数被程序员吐糟的9大困难(转)
  9. 由First表和Follow表得到LL1表(笔记)
  10. Android【报错】Description Resource Path Location Type Unparsed aapt error(s)! Cheheck the console for o
  11. 玩转手机摄影 oeasy教程总结
  12. DDR3 full empty如何产生?
  13. 牛客网--16128--小名的回答
  14. 字母重排(算法竞赛入门经典)
  15. Neo4j 4.x版本与jdk11的下载
  16. Python获取全部基金前十大持仓股并进行选股分析
  17. 脑机接口科普0012——脑机接口的灭亡
  18. layui-mini+spring boot实现table搜索操作传参
  19. 9个非常漂亮的国外网页设计
  20. 删除文件夹时,提示访问被拒、权限不足。如何解决?

热门文章

  1. 【 D3.js 进阶系列 】 进阶总结
  2. splunk 监视文件目录_使用Splunk监视Corda节点
  3. 加法器原理[数电基础]
  4. 如何大大提高上名校的机率!
  5. 网站计数器——Java实现
  6. mld snooping的实现(igmp snooping也差不多是这样)
  7. Tachyon安装:本地安装
  8. 帮我写一个风光互补发电系统功率优化分配程序
  9. 读懂一个 demo,入门机器学习
  10. python使用ttf文件_使用Python制作繁体显示的简体字体文件