图片批处理|必备小技能
微信公众号:*AI算法与图像处理
关注可了解更多的编程小技巧和优质资源。问题或建议,请公众号留言;
如果你觉得对你有帮助,欢迎 好看和分享哈
内容目录
图片批处理 简介具体事项1)分析文件的存储情况2)试着分析好,现在很清晰了,是时候准备一些东西了代码实现输出结果:此时已经获取图片的名字和地址——可以开始干活了结果展示
图片批处理 简介
图片批处理操作或者说数据的批处理在这个数据爆炸的时代经常会用到,除了特殊的情况,否则我们不会想着靠人力去一个一个的完成数据的处理(土法炼钢?),因此交给我们的苦力——电脑。
明确目标:把时间拿来做有价值的事情
思路:
1.批量读取文件
2.批量处理文件
3.批量存储文件
简称——3P操作?粗鄙之语。。。
具体事项
1)分析文件的存储情况
看一下文件的存储是什么鬼样子的
0文件夹下在3个小文件夹(比较常见的情况)
在每个次级文件夹(例如1_1文件夹)下存储着图片
看完脑壳痛!
2)试着分析
说明:为了方便理解,我将文件夹命名的比较有规律,从0开始往下一级加1
(1)批量读取文件 转化为——三步走:
A)定位到第一级文件夹(0)位置
B)读取次级文件夹(1_1,1_2,1_3)名字
C)读取次级文件夹下的图片(或者数据)名字
好,现在很清晰了,是时候准备一些东西了
A)导入库
Os ——操作系统功能的接口
Tqdm ——加个进度条,方便装逼,不,是查看执行情况
cv2 ——对图片进行一些操作,读取存储和变化等
B)图片准备
这里在每个文件夹下放两张
(2)批量处理图片
这里你可以添加各种自己喜欢的扫操作,只要不违法,随便怎么搞,为了简单起见,我不搞花里胡哨的,在代码中用了灰度变化操作
(3)批量存储文件
理解了批量读取文件,实际上批量存储文件类似的
代码实现
'''批量读取文件()'''import osfrom tqdm import tqdm
'''1.设置必要的读取路径和存储路径'''# path = os.getcwd() # 获取当前路径# 处理的图片不是在当前文件下,可以直接添加绝对路径path = '/media/pzw/0E50196C0E50196C/weixin/MultiProcess/0'## print(path) # 习惯每步都确认一哈有没有出错,大家可以直接忽略dst_path = '/media/pzw/0E50196C0E50196C/weixin/MultiProcess' # 处理完成后的图片存储位置
'''2.进入次级文件夹并读取文件'''dir_names = os.listdir(path) # 读取次级文件夹名字# print(dir_names)for dir in tqdm(dir_names): path_1 = os.path.join(path, dir) # 获取次级文件夹的路径 ||次级1开头 # print(path_1) pic_names = os.listdir(path_1) #读取图片的名字 print(pic_names)
输出结果:
100%|██████████| 3/3 [00:00<00:00, 5863.43it/s]
['1_1_1.jpg', '1_1_2.jpg']
['1_2_1.jpg', '1_2_2.jpg']
['1_3_1.jpg', '1_3_2.jpg']
此时已经获取图片的名字和地址——可以开始干活了
接下的工作都是相当于对单张图片进行操作了,因为我们循环到最底层(可能表述的不是很准确,大概意思是找到图片了,想怎么搞怎么搞了现在)
代码给你们了,注释的很清楚了哈!!!
import osimport cv2from tqdm import tqdm'''1.设置必要的读取路径和存储路径'''# path = os.getcwd() # 获取当前路径# 处理的图片不是在当前文件下,可以直接添加绝对路径path = '/media/pzw/0E50196C0E50196C/weixin/MultiProcess/0' # 第一级文件夹 0 开头## print(path) # 习惯每步都确认一哈有没有出错,大家可以直接忽略dst_path0 = '/media/pzw/0E50196C0E50196C/weixin/MultiProcess/0_pro' # 处理完成后的图片存储位置'''2.进入次级文件夹并读取文件'''dir_names = os.listdir(path) # 读取次级文件夹名字# print(dir_names)# tqdm是为了显示当前读取到第n个文件夹了,当然可以换到其他位置,不了解的小伙伴看之前的文章哈for dir in tqdm(dir_names): path_1 = os.path.join(path, dir) # 获取次级文件夹的路径 ||次级1开头 # print(path_1) pic_names = os.listdir(path_1) #读取图片的名字 # print(pic_names) dst_path1 = os.path.join(dst_path0,dir) # 对应的次级存储路径 ''' 3.对图片进行操作 此时可以认为是在单独一个文件里面的操作,这个文件夹内操作完成之后, 便会执行下一个文件夹,这样子就很好理解怎么做 这段话放在这里可能会影响大家理解,但是是为了告诉大家思路哈。读代码的时候可以删了 ''' for pic_name in pic_names: new_path = os.path.join(path_1, pic_name) # print(new_path) # 图片的读取路径 dst_pic_name = pic_name.split('.')[0]+'>_<.jpg' # 对处理完的图片名字进行修改,比较被修理之后会哭的 # print(dst_pic_name) dst_path = os.path.join(dst_path1, dst_pic_name) # print(dst_path) # 读取图片 img_0 = cv2.imread(new_path, cv2.IMREAD_GRAYSCALE) # 变成灰度图 # 这里可以添加你们想要的操作,裁剪,变换等等 # 判断存储路径是否存在,不存在,创建新路径 isExists = os.path.exists(dst_path1) if not isExists: os.makedirs(dst_path1) cv2.imwrite(dst_path, img_0)
结果展示
文件夹名字、图片名字以及图片都变了,说明,我曹,老子居然成功运行了。。。。
为了方便大家获取代码,代码已经加入肯德基豪华套餐了。what?
不,已经放在github上面了
https://github.com/SCUTPZW/AI_study/tree/master
图片批处理|必备小技能相关推荐
- os如何读取图片_图片批处理|必备小技能
微信公众号:*AI算法与图像处理 关注可了解更多的编程小技巧和优质资源.问题或建议,请公众号留言;如果你觉得对你有帮助,欢迎 好看和分享哈 内容目录 图片批处理 简介具体事项1)分析文件的存储情况2) ...
- 如何拍出来好看的Vlog,必备小技能(五)?
本文转自百家号VLOG,原文链接 如侵必删 一.好用又上手的剪辑APP安利大礼包 1.VUE VUE是一款基础剪辑App,适合新入坑Vlog的剪辑小白,简单操作易上手.不限拍摄时长,想拍多久拍多久!自 ...
- 新媒体必备小技能——文章生成图片
相信公众号运营大家都不陌生了,与运营和自媒体相关的工作大多都会用到图文编辑,当然好看的排版直接影响读者的阅读体验!在日常编辑推文以及制作宣传的过程中,图片是必不可少的重要组成部分!96编辑器的一键生成 ...
- 如何拍出来好看的Vlog,必备小技能(二)?
本文转自百家号VLOG,原文链接 如侵必删 二.拍摄Vlog的设备大全 (一)初阶:手机+稳定器 有了完整的拍摄思路,下面就进行实战了.相对于新手,我们更推荐大家使用随身携带的手机来进行Vlog创作. ...
- 如何拍出来好看的Vlog,必备小技能(四)?
本文转自百家号VLOG,原文链接 如侵必删 一.拍摄技巧大公开 1.运镜技巧 想要拍出优质.有张力的Vlog,熟练的运镜技巧可能会让你脱颖而出.运镜会让原本死板的固定镜头变得有活力,具有动感,也是瞬间 ...
- 如何拍出来好看的Vlog,必备小技能(六)?
本文转自百家号VLOG,原文链接 如侵必删 一.好标题是成功的99% 新媒体时代标题是文章的门面,决定了你的Vlog会不会被打开,视频会不会被分发,好标题就意味着高流量.很多初入门的小白作者,费劲心思 ...
- 如何拍出来好看的Vlog,必备小技能(一)?
本文转自百家号VLOG,原文链接 如侵必删 一.学会脚本思维,拍好Vlog so easy! 一个好的Vlog需要有脚本思维,那什么是脚本思维呢?脚本思维是指视频需要具备的好开头.镜头叙述.完整内容和 ...
- 如何拍出来好看的Vlog,必备小技能(三)?
本文转自百家号VLOG,原文链接 如侵必删 一枚初次尝试Vlog的小白如何快速get到一只属于自己的Vlog呢?你可能需要做到以下几步.流程图拿好不谢- 一.准备好一颗强心脏! 真人出镜或者通过旁述入 ...
- iOS小技能: 利用UIScrollView实现图片放大预览,并支持缩小。
文章目录 前言 I 利用UIScrollView实现图片放大和缩小 1.1 UIScrollView 的缩放原理 1.2 使用方法 1.3 代码实现 II iOS小技能:查看大图浏览器(图片支持滑动切 ...
最新文章
- Java并发编程:线程封闭和ThreadLocal详解
- jQuery技术内幕电子版4
- android wifi驱动_OTT盒子WiFi方案首选:博通2T2R WiFi模块
- nginx php分离,nginx-php配置动静分离
- 2021年Z世代“潮力量”洞察报告
- 未拉手刹撞到前面车的动画_使用手刹转换视频
- c++里解决“控制传输跳过的实例化”的方法
- html实现圆形计时器特效,js css3圆形的时分秒计时器动画特效
- Ubuntu X64 系统安装配置编录
- 答题卡 移动端在线考试html模板,标准化考试答题卡模板.doc
- 需求分析-1 愿景分析
- CwRsync | Windows与Windows之间同步备份配置详解
- 现场总线与计算机网络的最大区别,现场总线与局域网的区别是什么
- ICEM学习笔记(一)
- 不懂怎么搞定人的进来:年业绩千万的老销售给你几招实惠的-没有干货立即跳楼
- 数据有效性做下拉菜单
- 曾经的最爱-----暗黑破坏神zz
- webm转mp4 python实现
- 安卓demo,新手开发教程之开发备忘录
- window docker 找不到原先所有镜像和容器
热门文章
- 对话庄表伟老师-文字实录
- 爬取投票页面,音乐与视频,高清图片
- 电脑升级Win11后不流畅卡顿怎么办?
- UTF-8 and Unicode FAQ for Unix/Linu
- 基于webrtc的p2p H265播放器实现二
- 2008中国手机客户端软件Top50评选结果
- [随文杂记]收藏一个爆笑笑话。
- 使用对象 url 显示图像(window.URL.createObjectURL的使用)
- Spark系列四:Spark的经典入门案列之ip地址归属地查询
- 2022年“网络安全”赛项宜昌市选拔赛 任务书