python 探究is_dir函数及其使用案例(读取人脸图片)附整体代码
定义:检测指定的文件是否是一个目录,如果是则返回TRUE、否则返回FALSE
用法:
>>>type(info)
<class 'zipfile.ZipInfo'>
>>>info.is_dir()
True
读取人脸案例分析
- 导入人脸图片的信息库(
img_ali.gn_cel.eba.zip
) - 由于信息库是压缩包,我们需要调用python中的
zipfile
模块来对压缩包进行解压 - 使用
read
命令来获得文件库中的图片信息 - 此时获得的图片信息是以流的形式进行展示的,我们需要使用Numpy中的
frombuffer
方法,将流数据转换为ndarray
对象 - 使用cv2中自带的
imdecode
方法将获得的一维的ndarray
转换成三个通过的彩色图片 - 显示图片
导入相应的模块
import zipfile
import numpy as np # Numpy
import cv2 # OpenCV
获得图片的相对路径:
path = "..\\dl_data\\samples\\Img\\img_ali.gn_cel.eba.zip"
对文件夹进行解压(这里使用with…as…的用法。该用法稍后解释):
with zipfile.ZipFile(path) as zf:
开始遍历解压后的文件列表
for info in zf.filelist:
判断获得的info
是否是目录,如果是目录则退出遍历
if info.is_dir(): continue
读取图片的流信息
img = zf.read(info.filename)
此时获得的图片信息如下:
b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01...
将获得的流信息转换成ndarray
对象
img = np.frombuffer(img, np.uint8)
此时图片的信息如下:
array([255, 216, 255, ..., 71, 255, 217], dtype=uint8)
由于此时的图片是1维的需要通过OpenCV进行解码
img = cv2.imdecode(img,1)
最终得到的图片如下:
array([[[194, 231, 253],[194, 231, 253],[194, 231, 253],...,[216, 228, 246],[223, 237, 255],[222, 238, 254]],[[194, 231, 253],[194, 231, 253],[194, 231, 253],...,[218, 230, 248],[223, 237, 255],[222, 238, 254]],[[194, 231, 253],[194, 231, 253],[194, 231, 253],...,[220, 232, 250],[224, 238, 255],[223, 239, 255]],...,[[ 26, 74, 140],[ 1, 49, 115],[ 33, 78, 146],...,[ 28, 55, 122],[ 30, 56, 123],[ 30, 56, 122]],[[ 15, 62, 130],[ 23, 70, 138],[ 53, 98, 166],...,[ 20, 49, 118],[ 24, 50, 120],[ 24, 51, 118]],[[ 53, 100, 168],[ 89, 136, 204],[132, 177, 245],...,[ 20, 49, 118],[ 24, 50, 120],[ 24, 50, 120]]], dtype=uint8)
显示图片:
cv2.imshow("img1", img)cv2.waitKey(0)
显示如下:
整体代码如下:
# -*-coding:utf-8-*-
import zipfile
import numpy as np
import cv2if __name__ == '__main__':path = "E:\\dl_data\\samples\\Img\\img_ali.gn_cel.eba.zip"with zipfile.ZipFile(path) as zf:for info in zf.filelist:if info.is_dir(): continueprint(info)img = zf.read(info.filename)img = np.frombuffer(img, np.uint8)img = cv2.imdecode(img,1)cv2.imshow("img1", img)cv2.waitKey(2000)
python 探究is_dir函数及其使用案例(读取人脸图片)附整体代码相关推荐
- Python教学 | Python 中的分支结构(判断语句)【附本文代码和数据】
查看原文:[数据seminar]Python教学 | Python 中的分支结构(判断语句)[附本文代码和数据] Part1引言 上期文章我们学习了组合数据类型字典以及元组,这标志着 Python 基 ...
- Python:制作一个模拟扔硬币的程序(附完整代码)
Python:制作一个模拟扔硬币的程序(附完整代码) 在这个项目中,我们将编写一个Python程序来模拟扔硬币的方式.我们会使用Python内置的随机模块,实现随机出现正面或反面的效果. 首先,我们需 ...
- node函数 python_成为Python大牛必须要掌握的高端语法(附链接代码)
来源:机器学习算法与Python实战 本文约3000字,建议阅读5分钟 必要掌握的高端语法助你成为Python大牛. 这是stackoverflow上一个关于python中yield用法的帖子,这里翻 ...
- 成为Python大牛必须要掌握的高端语法(附链接代码)
来源:机器学习算法与Python实战 本文约3000字,建议阅读5分钟 必要掌握的高端语法助你成为Python大牛. 这是stackoverflow上一个关于python中yield用法的帖子,这里翻 ...
- python连乘函数_(Python3) 连加 连乘 代码
原博文 2019-01-27 21:25 − a=[1,2,3,4,5,6,7,8,9,10] #连加 b=0 for i in a: b+=i print(b) #连乘 c=1 for i in a ...
- 基于Python的OpenCV函数----imshow(winname, mat)【显示图片】
函数名称 imshow(winname, mat) -> None 摘要 在指定窗口中显示图像. 描述 函数imshow在指定的窗口中显示一个图像.如果窗口是用cv::WINDOW_AUTOSI ...
- python中level函数的用法_Python Pandas MultiIndex.sortlevel()用法及代码示例
Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas MultiIndex.so ...
- 最新版学习笔记---Python机器学习基础教程(1)Irises(鸢尾花)分类---附完整代码
开始学习机器学习基础,在此留下学习心得与自己的理解. 啥也不说,先看一下鸢尾花啥样 好看吧~~~~ Iris 1.环境搭建 2.了解数据 2.1读取数据 2.2查看数据 3.分离数据 4.构建模型(k ...
- csv导入mysql_京东金融数据分析:MySQL+HIVE的结合应用案例详解【附全代码】
- 点击上方"中国统计网"订阅我吧!- 文末领取[案例数据集+全部代码] 给定的数据为业务情景数据,所有数据均已进⾏了采样和脱敏处理,字段取值与分布均与真实业务数据不同.提供了时 ...
- 如何用 Python 爬取网易云音乐的 10w+ 评论?附详细代码解读
在简单学习了Python爬虫之后,我的下一个目标就是网易云音乐.因为本人平时就是用它听的歌,也喜欢看歌里的评论,所以本文就来爬一爬网易云音乐的评论吧! 正式进入主题 首先是找到目标网页并分析网页结构, ...
最新文章
- simple go web application 二维码生成 打包部署
- 当执行打印预览window.close无效
- python在函数内部有没有办法定义全局变量_主函数内部的全局变量python
- hdu 3105 Fred's Lotto Tickets (水)
- Python开发Day07(学生选课)
- 专访何红辉:谈谈Android源码中的设计模式
- shell卸载 simatic_西门子软件在WIN7操作系统中安装步骤和须知
- 计算机高配置表cpu,高配置电脑配置清单
- FPS 每秒传输帧数(Frames Per Second)
- flask_uploads——“ImportError: cannot import name ‘secure_filename‘ from ‘werkzeug‘“
- 利用C51单片机内部函数_corl_函数实现LED流水灯。
- 转:稻盛和夫:幸福的那些“法”,背后承载的“道”是什么?
- 音量公式_家庭影院功放功率与音量之间的秘密
- IVL和SVL的区别
- python计算器教程vscode_第3天 | 12天搞定Python,用VSCode编写代码
- JAVA宠物医院管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
- python matplotlib绘制折线图_Matplotlib实践系列:折线图完全示例
- 【防坑指南】nginx重启后出现[error] open() “/usr/local/var/run/nginx/nginx.pid” failed
- win10.10 激活
- Dubbox框架使用手册
热门文章
- php文件显示文字乱码怎么解决,php遍历到的文件是中文文件名 显示为乱码 该如何解决...
- 如何在html中做超链接,如何在HTML上做一个超链接?
- 计算机基础-路由器、光猫、交换机、电脑之间的连接关系
- HDU5745 La Vie en rose
- Windows事件查看器介绍
- 服务器系统事件id1001,WIN10事件查看器,ID1000,ID1001 問題
- 计算机专业论文指导教师评语,指导老师论文评语
- 从淘宝P5到天猫总监,她的阿里十年发生了什么?
- Observable与Subject
- postman面试_接口测试面试常见问题