Spaces:
Runtime error
Runtime error
# Copyright (c) OpenMMLab. All rights reserved. | |
import os | |
import mmcv | |
def drop_orientation(img_file): | |
"""Check if the image has orientation information. If yes, ignore it by | |
converting the image format to png, and return new filename, otherwise | |
return the original filename. | |
Args: | |
img_file(str): The image path | |
Returns: | |
The converted image filename with proper postfix | |
""" | |
assert isinstance(img_file, str) | |
assert img_file | |
# read imgs with ignoring orientations | |
img = mmcv.imread(img_file, 'unchanged') | |
# read imgs with orientations as dataloader does when training and testing | |
img_color = mmcv.imread(img_file, 'color') | |
# make sure imgs have no orientation info, or annotation gt is wrong. | |
if img.shape[:2] == img_color.shape[:2]: | |
return img_file | |
target_file = os.path.splitext(img_file)[0] + '.png' | |
# read img with ignoring orientation information | |
img = mmcv.imread(img_file, 'unchanged') | |
mmcv.imwrite(img, target_file) | |
os.remove(img_file) | |
print(f'{img_file} has orientation info. Ignore it by converting to png') | |
return target_file | |
def is_not_png(img_file): | |
"""Check img_file is not png image. | |
Args: | |
img_file(str): The input image file name | |
Returns: | |
The bool flag indicating whether it is not png | |
""" | |
assert isinstance(img_file, str) | |
assert img_file | |
suffix = os.path.splitext(img_file)[1] | |
return suffix not in ['.PNG', '.png'] | |