'''author:tonyzhangfunction:transfrom img to size H W and save'''import cv2import osimport globdir_path = "F:/SPAQImage/*.jpg"save_path = "F:/SPAQImage224/"for i in glob.glob(dir_path):img = cv2.imread(i)print(i)img = cv2.resize(img,(224,224))cv2.imwrite(os.path.join(save_path,os.path.basename(i)),img)
上面的单线程版本,太慢了
下面搞了个多线程,快了很多,cpu利用率拉满
'''author:tonyzhangfunction:transfrom img to size H W and save'''import cv2import osimport globimport concurrent.futuresfrom threading import Threadnum_threads = 10dir_path = "T:/PARA/img_all/"save_path = "T:/PARA/img_all2/"def process_image(filelist):for filename in filelist:print(filename)file = os.path.join(dir_path,filename)img = cv2.imread(file)img = cv2.resize(img,(224,224))cv2.imwrite(os.path.join(save_path,filename),img)def multi_thread_process(dir_path):if num_threads == 1:process_image(os.listdir(dir_path))returnfilelist_total = os.listdir(dir_path)filenum = len(filelist_total)filenum_each_thread = int(filenum/num_threads)thread_list = []for i in range(num_threads-1):thread_list.append(Thread(target=process_image, args=(filelist_total[i*filenum_each_thread : (i+1)*filenum_each_thread],)))thread_list.append(Thread(target=process_image, args=(filelist_total[(num_threads-1)*filenum_each_thread :],)))for th in thread_list:th.start()for th in thread_list:th.join()multi_thread_process(dir_path)
