当前位置: 首页 > news >正文

OpenCv之人脸操作

目录

一、马赛克实现

二、人脸马赛克

三、人脸检测

四、多张人脸检测


一、马赛克实现

案例代码如下:

import cv2
import numpy as npimg = cv2.imread('8.jpg')
# 马赛克方式一:缩小图片
# img2 = cv2.resize(img,(600,400))
# # 马赛克方式二:
# img2 = cv2.resize(img,(600,400))
# img3 = np.repeat(img2,10,axis=0) #重复行
# img4 = np.repeat(img3,10,axis=1) #重复列# 马赛克方式三
img2 = img[::10,::10] #每十个中取出一个像素,取出细节
cv2.namedWindow('img2',flags=cv2.WINDOW_NORMAL)
cv2.resizeWindow('img2',(600,400))cv2.imshow('img2',img2)cv2.waitKey(0)
cv2.destroyAllWindows()

二、人脸马赛克

注:图像大小不同,对应像素点不同

import cv2
import numpy as npimg = cv2.imread('8.jpg')
img2 = cv2.resize(img,(600,400))
# 进行人为定位,对特定区域进行打码
face = img2[200:100,300:300]
face = face[::10,::10] #每十个中取出一个像素,马赛克
face = np.repeat(face,10,axis = 0) #行方向重负十次
face = np.repeat(face,10,axis = 1) #列方向重复十次
img2[100:300,200:300] = face[:,:,[0,2,1]]cv2.imshow('img2',img2)cv2.waitKey(0)
cv2.destroyAllWindows()

三、人脸检测

特征:根据眼睛、嘴巴、鼻子、眉毛、耳朵等特征来进行人脸特征提取

import cv2
import numpy as np#读取图片
img = cv2.imread('8.jpg')
#缩小图片
img = cv2.resize(img,(600,400))
# 人脸特征详细说明
# 级联分类器,检测器,调用级联分类器进行检测
face_detector = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
faces = face_detector.detectMultiScale(img)print(faces)
# [[143 151 113 113]]
for x,y,w,h in faces: #for循环可以进行数组的遍历cv2.rectangle(img,pt1=(x,y),pt2=(x+w,y+h),color=[0,0,255],thickness=2) #对人脸画矩形
cv2.imshow('img',img)cv2.waitKey(0)
cv2.destroyWindow()

四、多张人脸检测

案例代码如下:

import cv2
import numpy as np#读取图片
img = cv2.imread('nba.jpeg')
# gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#缩小图片
img = cv2.resize(img,(600,400))
# 人脸特征详细说明
# 级联分类器,检测器,调用级联分类器进行检测
face_detector = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
faces = face_detector.detectMultiScale(img,scaleFactor=1.05, #缩放minNeighbors=3)print(faces)
# [[143 151 113 113]]
for x,y,w,h in faces: #for循环可以进行数组的遍历cv2.rectangle(img,pt1=(x,y),pt2=(x+w,y+h),color=[0,0,255],thickness=2) #对人脸画矩形
cv2.imshow('img',img)cv2.waitKey(0)
cv2.destroyWindow()

运行结果如下:

 

http://www.lryc.cn/news/95582.html

相关文章:

  • C++[第五章]--指针和引用
  • 用i18next使你的应用国际化-React
  • TSN -促进IT/OT 融合的网络技术
  • 改进的北方苍鹰算法优化BP神经网络---回归+分类两种案例
  • 等保工作如何和企业创新业务发展相结合,实现“安全”和“创新”的火花碰撞?
  • 23.7.25 杭电暑期多校3部分题解
  • 【设计模式——学习笔记】23种设计模式——桥接模式Bridge(原理讲解+应用场景介绍+案例介绍+Java代码实现)
  • 文档翻译软件那么多,哪个能满足你的多语言需求?
  • MySQL 中NULL和空值的区别
  • 阿里云容器镜像仓库(ACR)的创建和使用
  • 工业的相机与镜头(简单选型)
  • numpy广播机制介绍
  • RocketMQ 5.0 无状态实时性消费详解
  • 本地 IDC 中的 K8s 集群如何以 Serverless 方式使用云上计算资源
  • MySQL - 安装、连接、简单介绍
  • 【算法】求欧拉函数(包括完整的证明以及代码模板,建议收藏)
  • Ceph的应用
  • mac m1 触控栏TouchBar功能栏异常
  • “奢侈品”价格的“快消品”,竹叶青这么想赚年轻人的“茶水钱”?
  • 【Matlab】基于随机森林算法的时间序列预测(Excel可直接替换数据)
  • vue 中断请求
  • Jwt(Json web token)——从Http协议到session+cookie到Token Jwt介绍 Jwt的应用:登陆验证的流程
  • Java使用 java.util.regex.Pattern 正则表达式校验参数值是否规范
  • HDFS基本操作命令
  • git 实操
  • Visual Studio Code Python 扩展中的包管理
  • spring学习笔记九
  • java list stream 使用
  • 两个Ubuntu电脑用SSH远程连接
  • 讲解 @ServletComponentScan注解