def main()

in dataloaders/prepare_cityscapes.py [0:0]


def main(in_dir, out_dir, img_side):

    # List cities in the input directory
    cities = os.listdir(in_dir)

    # List directories in the input dir
    all_fnames = []
    for city in cities:

        in_city_dir = os.path.join(in_dir, city)

        # List frames
        frame_fnames = os.listdir(in_city_dir)
        all_fnames = all_fnames + [FNAME_PARSER.parse(f).named for f in frame_fnames]

    # Convert into a pandas dataframe
    df = pd.DataFrame(all_fnames)

    # Loop over cities
    for city in cities:

        # Define dirs
        in_city_dir = os.path.join(in_dir, city)
        out_city_dir = os.path.join(out_dir, city)

        # Find all sequences for that city
        city_df = df[df.city == city]
        city_seq_ids = city_df.seq_id.unique()

        for seq_id in city_seq_ids:

            out_seq_dir = os.path.join(out_city_dir, '{:0>6}'.format(seq_id))

            # List all the fnames
            seq_df = city_df[city_df.seq_id == seq_id]

            # Resize all the images
            if len(seq_df) == 30:

                if not os.path.exists(out_seq_dir):
                    os.makedirs(out_seq_dir)

                for index, row in seq_df.iterrows():

                    in_file = os.path.join(in_city_dir, '{}_{:0>6}_{:0>6}_leftImg8bit.png'.format(city, seq_id, row['frame_id']))
                    out_file = os.path.join(out_seq_dir, '{:0>6}.jpg'.format(row['frame_id']))
                    resize_image(in_file, out_file, img_side)

                print('{}/{} done'.format(city, seq_id))

            else:
                print('{}/{} skipped'.format(city, seq_id))


    print('All done')