OpenCv之人脸操作

news2024/11/26 4:37:05

目录

一、马赛克实现

二、人脸马赛克

三、人脸检测

四、多张人脸检测


一、马赛克实现

案例代码如下:

import cv2
import numpy as np


img = 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 np

img = 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.coloradmin.cn/o/780720.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《中国算力服务研究报告(2023年)》发布在即

2023年,中共中央 国务院印发《数字中国建设整体布局规划》,强调“系统优化算力基础设施布局,促进东西部算力高效互补和协同联动。”算力服务涵盖支撑东西部算力高效联通的关键技术,在国家政策引导下,我国算力服务产业发…

SpringCloudAlibaba微服务实战系列(一)Nacos服务注册发现

SpringCloudAlibaba微服务实战系列(一)Nacos服务注册发现 实战前先做一个背景了解。 单体架构、SOA和微服务 单体架构:近几年技术的飞速发展,各种各样的服务已经进入到网络化。单体架构发布时只需要打成一个war或jar包发布即可&a…

动态内存管理基础详解

目录 1、为什么存在动态内存分配 2、动态内存函数的介绍 2.1 malloc和free 功能: 参数和返回值: 注意事项: tip: 2.2 calloc 2.3 realloc函数 功能: 参数和返回值: realloc开辟空间的两种情况 realloc会顺…

SAR合成孔径雷达中几何术语定义

《合成孔径雷达成像算法与实现》 术语定义 目标 波束覆盖区 星下点 雷达轨迹 速度 方位向 零多普勒面 最短距离 最近位置 零多普勒时刻 波束宽度 目标轨迹 信号空间和图像空间 距离 斜距平面 地距 斜视角 距离横向 目标 是被SAR照射的地球表面上的一…

内存的五大分区(自用水文)

1、堆区(heap)——由程序员分配和释放, 若程序员不释放,程序结束时一般由操作系统回收。注意它与数据结构中的堆是两回事 2、栈区(stack)——由编译器自动分配释放 ,存放函数的参数值&#xff0…

SpringMVC及注解介绍(一)

目录 1.什么是 Spring MVC? 2.创建一个SpringMVC项目 3.MVC定义 4.MVC和SpringMVC的关系 5.如何学SpringMVC 6.SpringMVC注解介绍 1.RequestMapping 2.ResponseBody 3.RestController Controller ResponseBody 4.更换五大注解 5.RequestMapping 是 post…

整车总线系列——FlexRay 五

整车总线系列——FlexRay 五 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能…

【NumPy 简单入门学习】

NumPy 简单入门学习 提示:仅记录需要记忆的知识点和不易理解的知识点 文章目录 NumPy 简单入门学习前言一、创建数组二、多维数组切片1.切片的多种形式2.数组的数学运算3.布尔屏蔽4.Where 函数 总结 前言 提示:这里可以添加本文要记录的大概内容&#x…

【问题记录】Ubuntu 22.04 环境下,打开 VS Code 老是访问密钥环该怎么解决?

目录 环境 问题情况 解决方法 环境 VMware Workstation 16 Pro (版本:16.1.2 build-17966106)ubuntu-22.04.2-desktop-amd64 问题情况 在Ubuntu下,每次运行 VS Code时,老是提示要输入密钥密码来解锁保存在密钥环&am…

POSTGRESQL 子事务的问题与注意事项

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

使用conda pack进行环境迁移

起因 起因是训练服务器为了安全期间,限制不能联网。而且想连接A100显卡的训练服务器必须通过堡垒机方可连接(即目标服务器既不能联网,也与本机不在同一个网段) 安装工具 首先,使用 conda env list 查看所有环境&…

Data与Java8中的LocalDate相互转换

一、前言 Date这个类在java.util包中,始于jdk1.0。后来在jdk1.8时,针对日期类进行了一个大的更新,专门新建了java.time包,新的日期类LocalDateTime就在这个包中。 日常工作中,很容易碰到旧日期类Date,与新…

回归预测 | MATLAB实现TCN-GRU时间卷积门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.Matlab实现TCN-GRU时间卷积门控循环单元多…

C语言数据在内存中的存储

目录 前言 本期内容介绍 一、数据类型的介绍 1.1类型的意义: 1.2C语言中是否有字符串类型? 1.3类型的基本归类 整型家族: 浮点型(实型)家族: 构造(自定义)类型:…

通过 CSS 的样式实现语音发送动效类似声音震动的效果

实现效果&#xff1a;一般用于发送语音的时候&#xff0c;出现动画效果 //模版部分 <view class"musical-scale"><view class"scale"><view class"em" v-for"(item,index) in 15" :key"index"></view…

记录这这段时间发生的事情。

当做后端的时候总是被骂做前很丑。成为一个UI设计师与后端工程师才会更加完美。 尝试着做一个主页面。 创建了一个主页面 的表格index。 收录了希望发送到主页的&#xff0c;的帖子。 并且&#xff0c;可以填写是否可以。 一个看起来不错的主页。 标题设计的左右框。 这种框…

自动化运维——Ansible学习(四)——roles角色

目录 一、roles概述 二、角色的使用 1.角色(roles)&#xff1a;角色集合 2.roles建议存放位置 3.调用角色的方法 (1)调用角色方法1 (2)调用角色方法2 4.完整的角色架构 5.roles playbook tags使用 三、Ansible Roles目录编排 四、roles目录 (一)roles目录结构 …

剑指offer简单题01-10

01 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** * param numbers int整型一维数组 * return int整型*/public int duplicate (int[] numbers) {// write code hereint…

【计算机视觉|人脸识别】 facenet-pytorch 项目中文说明文档

下文搬运自GitHub&#xff0c;很多超链接都是相对路径所以点不了&#xff0c;属正常现象。点击查看原文档。转载请注明出处。 原作者暂时并未对我的提交做出回应&#xff0c;这里同步提交到CSDN&#xff0c;点击查看项目源码 使用 Pytorch 进行人脸识别 Click here to return …

git 和adb

一、git 1、git的作用 git是一个版本控制系统&#xff0c;是一种记录一个或若干文件内容变化&#xff0c;以便将来查阅特定版本修订情况的系统。 我的理解就是代码管理器&#xff1a; 第一点你可将代码备份到git仓上&#xff1b; 第二点可记录的你修改记录&#xff1b; 第三点…