import os
import torch
import sys
from PIL import Image
import numpy as np
from torchvision import transforms
def get_img_path(img_folder):
img_paths = []
for root, dirs, files in os.walk(img_folder):
for f in files:
if f.endswith('.png'):
print(os.path.join(root, f))
img_paths.append(os.path.join(root, f))
return img_paths
def _img_transform(image):
image_transform = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize([.485, .456, .406], [.229, .224, .225])])
image = image_transform(image)
return image
if __name__ == '__main__':
cityscapes_path = sys.argv[1]
bin_path = sys.argv[2]
if os.path.exists(bin_path) is False:
os.mkdir(bin_path)
split = "val"
img_folder = os.path.join(cityscapes_path, 'leftImg8bit/' + split)
img_paths = get_img_path(img_folder)
for i in range(len(img_paths)):
filename = os.path.basename(img_paths[i])
image = Image.open(img_paths[i]).convert('RGB')
image = _img_transform(image)
image = torch.unsqueeze(image, 0)
image = np.array(image).astype(np.float32)
image.tofile(os.path.join(bin_path, filename.split('.')[0] + '.bin'))