Учитывая, что xmin
и ymin
всегда будут 0
, а xmax
и ymax
будут равны размерам изображения - 1
. Вы можете использовать opencv
пакет для него, вам нужно pip
установить его. Если у вас есть это, вы можете просто сделать это:
import os
import cv2
def get_dimensions(img_path):
# read image
img = cv2.imread(img_path, cv2.IMREAD_UNCHANGED)
xmin = 0
ymin = 0
ymax =
xmax = img.shape[1] - 1
return {
'xmin': 0,
'xmax': img.shape[0] - 1,
'ymin': 0,
'ymax': img.shape[0] - 1
}
def list_files(dir_path):
files_and_folders = [
os.path.abspath(os.path.join(dir_path,file_or_folder)) for file_or_folder in os.listdir(dir_path)
]
return [file for file in files_and_folders if os.path.isfile(file)]
def get_img_data(dir_path):
return [
{**get_dimensions(img_path), 'name':os.path.basename(img_path)} for img_path in list_files(dir_path)
]
Это пример, я использую функцию get_img_data
с путем /tmp/
, она будет искать все файлы в этом каталоге и читать их (убедитесь, что путь к каталогу, который вы используете, содержит только изображения), затем в output
я сохраняю результат, который я печатаю, он будет иметь значения xmin, xmax, ymin, ymax
и name
файла.
output = get_img_data('/tmp/')
print(output)
>>> '[{'xmin': 0, 'xmax': 199, 'ymin': 0, 'ymax': 199, 'name': 'a.png'}, {'xmin': 0, 'xmax': 199, 'ymin': 0, 'ymax': 199, 'name': 'b.png'}]'