文档章节

小黑深度学习之路——图片爬取+人脸识别截取

阿亮学长123
 阿亮学长123
发布于 2017/05/05 10:26
字数 750
阅读 260
收藏 1

环境:Windows7+64位,pycharm,Anaconda2(python集成管理环境),opencv

想要做人脸截取的话,需要用到CV2这个包,他是基于openCV的,所以需要安装opencv。以上就是环境准备工作啦,你自己把平台弄好,就可以时实践了。

代码(干货来了!)

首先感谢这位博主,我是参考他的代码来的。还找到一个对动漫人脸进行识别的,但是我自己没有调试出来,如果有兴趣你们可以试试,告诉我结果。 人脸识别 好用,还有其他函数 动漫人脸识别 动漫人脸

注意:haarcascade_frontalface_default.xml这个文件是已经训练好的人脸识别集,我放到我百度云里,需要自取吧。(隔天过来放)

**图片爬取:

**


- #coding=utf-8
- import requests
- import os
- import sys
- defaultencoding = 'utf-8'
- if sys.getdefaultencoding() != defaultencoding:
-     reload(sys)
-     sys.setdefaultencoding(defaultencoding)
- def getManyPages(keyword,pages):
-     params=[]
-     for i in range(30,30*pages+30,30):
-         params.append({
-                       'tn': 'resultjson_com',
-                       'ipn': 'rj',
-                       'ct': 201326592,
-                       'is': '',
-                       'fp': 'result',
-                       'queryWord': keyword,
-                       'cl': 2,
-                       'lm': -1,
-                       'ie': 'utf-8',
-                       'oe': 'utf-8',
-                       'adpicid': '',
-                       'st': -1,
-                       'z': '',
-                       'ic': 0,
-                       'word': keyword,
-                       's': '',
-                       'se': '',
-                       'tab': '',
-                       'width': '',
-                       'height': '',
-                       'face': 0,
-                       'istype': 2,
-                       'qc': '',
-                       'nc': 1,
-                       'fr': '',
-                       'pn': i,
-                       'rn': 30,
-                       'gsm': '1e',
-                       '1488942260214': ''
-                   })
-     url = 'https://image.baidu.com/search/acjson'
-     urls = []
-     for i in params:
-         urls.append(requests.get(url,params=i).json().get('data'))
- 
-     return urls
- 
- 
- def getImg(dataList, localPath):
- 
-     if not os.path.exists(localPath):  # 新建文件夹
-         os.mkdir(localPath)
- 
-     x = 0
-     for list in dataList:
-         for i in list:
-             if i.get('thumbURL') != None:
-                 print('正在下载:%s' % i.get('thumbURL'))
-                 ir = requests.get(i.get('thumbURL'))
-                 open(localPath + '%d.jpg' % x, 'wb').write(ir.content)
-                 x += 1
-             else:
-                 print('图片链接不存在')
- 
- if __name__ == '__main__':
-     dataList = getManyPages('冯雷',10)  # 参数1:关键字,参数2:要下载的页数
-     getImg(dataList,'E:/hao1/picture/') # 参数2:指定保存的路径

**人脸识别并截取

**

  #-*-coding:utf8-*-#


- import os
- import cv2
- import glob
- from PIL import Image,ImageDraw
- 
- #detectFaces()返回图像中所有人脸的矩形坐标(矩形左上、右下顶点)
- #使用haar特征的级联分类器haarcascade_frontalface_default.xml,在haarcascades目录下还有其他的训练好的xml文件可供选择。
- #注:haarcascades目录下训练好的分类器必须以灰度图作为输入。
- def detectFaces(image_name):
-     img = cv2.imread(image_name)
-     face_cascade = cv2.CascadeClassifier("D:\people_picture\haarcascade_frontalface_default.xml")
-     if img.ndim == 3:
-         gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
-     else:
-         gray = img #if语句:如果img维度为3,说明不是灰度图,先转化为灰度图gray,如果不为3,也就是2,原图就是灰度图
- 
-     faces = face_cascade.detectMultiScale(gray, 1.2, 5)#1.3和5是特征的最小、最大检测窗口,它改变检测结果也会改变
-     result = []
-     for (x,y,width,height) in faces:
-         result.append((x,y,x+width,y+height))
-     return result
- 
- 
- #保存人脸图
- def saveFaces(image_name,j):
-     faces = detectFaces(image_name)
-     if faces:
-         #将人脸保存在save_dir目录下。
-         #Image模块:Image.open获取图像句柄,crop剪切图像(剪切的区域就是detectFaces返回的坐标),save保存。
-         #save_dir = image_name.split('.')[0]+"_faces"
-         save_dir='D:\people_picture\pic'
-         #os.mkdir(save_dir)
-         #count = 0
-         for (x1,y1,x2,y2) in faces:
-             file_name = os.path.join(save_dir,str(j)+".jpg")
-             Image.open(image_name).crop((x1,y1,x2,y2)).save(file_name)
-             #count+=1
- 
- 
- 
- 
- if __name__ == '__main__':
-    file_list = glob.glob('D:\people_picture\pic\*.jpg')
-    j=0
-    for filename in file_list:
-         j+=1
-         detectFaces(filename)
-         saveFaces( filename,j)
- 

© 著作权归作者所有

阿亮学长123
粉丝 12
博文 31
码字总数 14762
作品 0
南京
程序员
私信 提问
孙启超:卷积神经网络在人脸识别技术中的应用 | AI研习社第51期猿桌会

随着 iPhone X 的发布,Face ID 人脸识别技术开始进入人们的日常生活中,当我们拿起手机并看着它的时候就可以实现手机解锁的功能。而人脸识别中的关键技术就是卷积神经网络。 近日,在雷锋网...

丛末
2018/08/22
0
0
Python爬虫+颜值打分,5000+图片找到你的Mrs. Right

一见钟情钟的不是情,是脸 日久生情生的不是脸,是情 项目简介 本项目利用Python爬虫和百度人脸识别API,针对简书交友专栏,爬取用户照片(侵删),并进行打分。 本项目包括以下内容: 图片爬...

罗罗攀
2018/08/02
0
0
python使用BeautifulSoup爬取pixabay上的图片

最近也学了一些python的基础知识,写个小爬虫,爬取上的图片并保存到本地。好,我们开始吧。 先说一下我们使用的工具和python包 python 3.6 bs4 BeautifulSoup xlwt (用于保存到本地Excel) ...

大众的众
2017/06/12
0
0
杜凯杰教学数据分析:python 图片爬取 爬取各校校花图片

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/weixin44528048/article/details/92024052 python 图片爬取 爬取各校...

杜凯杰
06/15
0
0
WebCollector 2.x教程列表

WebCollector爬虫官网:https://github.com/CrawlScript/WebCollector WebCollector 2.x教程列表 WebCollector教程——在Eclipse项目中配置使用WebCollector爬虫 JAVA爬虫WebCollector 2.x入......

MiniBu
2016/08/26
724
0

没有更多内容

加载失败,请刷新页面

加载更多

总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
40分钟前
3
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
43分钟前
3
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0
JAVA 利用时间戳来判断TOKEN是否过期

import java.time.Instant;import java.time.LocalDateTime;import java.time.ZoneId;import java.time.ZoneOffset;import java.time.format.DateTimeFormatter;/** * @descri......

huangkejie
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部