赞
踩
此博客纯属记录我学习的过程,是本人的一次大作业,如果程序中有问题或者有更好的实现方法希望各位前辈多多指点
大多数人的相册都是乱七八糟的,动物的照片,人的照片,汽车的照片等等都参杂在一起。而人们平时没有多少时间去一个个的整理到相应的文件夹里。那么我们是否可以通过一个程序来将他们分类整理呢。
from aip import AipImageClassify
from PIL import Image,ImageDraw,ImageFont
import os
import shutil
import os.path as op
import time
代码如下
from aip import AipImageClassify from PIL import Image,ImageDraw,ImageFont import os import shutil import os.path as op import time "" 你的 APPID AK SK """ APP_ID = '*******' API_KEY = '*******' SECRET_KEY = '*******' client = AipImageClassify(APP_ID, API_KEY, SECRET_KEY) """ 显示所有图片 """ sywj=os.listdir(os.getcwd()) # 所有文件来自于当前文档 print('当前文件夹下共有',len(sywj),'个文件:',sywj) d=input('输入文件路径:') path=ad filenames = os.listdir(path) print('\n图片文件包括:') for filename in filenames: print(filename) """ 读取图片 """ # while True: def get_file_content(filePath): with open(filePath, 'rb') as fp: return fp.read() for filename in filenames: image = get_file_content(path+'\\'+filename)# 打开要识别的图片 """ 调用通用物体识别 """ client.advancedGeneral(image); """ 如果有可选参数 """ options = {} options["baike_num"] = 5 """ 带参数调用通用物体识别 """ d=client.advancedGeneral(image, options) # print(d) """ 检查结果 """ dsg=d['result_num']# 几个识别结果 # print(dsg) sc='\n识别结果' print(sc) for cf in range(dsg): identify=d['result'][cf]['keyword'] probabilly=d['result'][cf]['score'] print(identify,probabilly) i=d['result'][0]['keyword'] img=Image.open(path+'\\'+filename) img.save(i+'.jpg') print('图片已保存') while True: o='yes' p='no' z=input('是否要新建文件夹:') # print(z) if z == o: while True: xdwjj=input('\n请输入要新建的文件名:') if not os. path.exists(xdwjj): os.mkdir(xdwjj) print('文件夹',xdwjj,'已新建') break else: print('文件(夹)',xdwjj,'已存在,另换一个') #获取批量文件处理的总路径 def MainPath(): main_path =input("请手动查阅文件夹的路径:") return main_path def file_process(main_path): os.chdir("{0}".format(str(main_path))) #将解释器的工作路径切换到要处理的文件夹的路径 names = os.listdir("{0}".format(main_path)) #获取当前目录下所有要批量处理的文件名names myIn =input("你所要进行归类的关键字:") myDst = input("请输入你所要放置的目标文件夹路径:") for name in names: #遍历所有的文件名 if "{0}".format(myIn) in name : myScr = op.join(main_path, name) #将上一级路径与文件名组合,得到文件的路径,os.path.join(path,path) shutil.move(myScr,myDst) #进行文件移动 原路径-- 目标路径 print("Done...") if __name__ == "__main__": file_process(main_path=MainPath()) elif z == p: def MainPath(): main_path =input("请手动查阅文件夹的路径:") return main_path def file_process(main_path): os.chdir("{0}".format(str(main_path))) names = os.listdir("{0}".format(main_path)) myIn =input("你所要进行归类的关键字:") myDst = input("请输入你所要放置的目标文件夹路径:") for name in names: #遍历所有的文件名 if "{0}".format(myIn) in name : myScr = op.join(main_path, name) shutil.move(myScr,myDst) print("Done...") if __name__ == "__main__": file_process(main_path=MainPath()) else: print('over') break
参考 百度AI-图像技术-图像识别-通用物体和场景识别-SDK文档 -Python语言
https://ai.baidu.com/ai-doc/IMAGERECOGNITION/4k3bcxj1m
部分资料来自百度图库
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。