| |
| |
|
|
| import os |
| import struct |
| from PIL import Image |
|
|
| IMG_EXTENSIONS = [ |
| '.jpg', '.JPG', '.jpeg', '.JPEG', |
| '.png', '.PNG', '.ppm', '.PPM', '.bmp', '.BMP', |
| ] |
|
|
|
|
| def is_image_file(filename): |
| return any(filename.endswith(extension) for extension in IMG_EXTENSIONS) |
|
|
|
|
| def make_dataset(dir): |
| images = [] |
| assert os.path.isdir(dir), '%s is not a valid directory' % dir |
|
|
| for root, _, fnames in sorted(os.walk(dir)): |
| for fname in fnames: |
| if is_image_file(fname): |
| |
| path = os.path.join(root, fname) |
| images.append(path) |
|
|
| return images |
|
|
| |
| indir="/home/ziyuwan/workspace/data/temp_old" |
| target_folders=['VOC','Real_L_old','Real_RGB_old'] |
| out_dir ="/home/ziyuwan/workspace/data/temp_old" |
| |
|
|
| if os.path.exists(out_dir) is False: |
| os.makedirs(out_dir) |
|
|
| |
| for target_folder in target_folders: |
| curr_indir = os.path.join(indir, target_folder) |
| curr_out_file = os.path.join(os.path.join(out_dir, '%s.bigfile'%(target_folder))) |
| image_lists = make_dataset(curr_indir) |
| image_lists.sort() |
| with open(curr_out_file, 'wb') as wfid: |
| |
| wfid.write(struct.pack('i', len(image_lists))) |
| for i, img_path in enumerate(image_lists): |
| |
| img_name = os.path.basename(img_path) |
| img_name_bytes = img_name.encode('utf-8') |
| wfid.write(struct.pack('i', len(img_name_bytes))) |
| wfid.write(img_name_bytes) |
| |
| |
| with open(img_path, 'rb') as img_fid: |
| img_bytes = img_fid.read() |
| wfid.write(struct.pack('i', len(img_bytes))) |
| wfid.write(img_bytes) |
|
|
| if i % 1000 == 0: |
| print('write %d images done' % i) |