У меня есть папка с изображениями в градациях серого (100x100 пикселей) с именами файлов как таковыми:
- file_123_A.ome.tif
- file_123_B.ome.tif
- file_123_ C .ome.tif
- file_125_A.ome.tif
- file_125_B.ome.tif
- file_125_ C .ome.tif
Номер каждого имени файла (123 и 125 в приведенных выше примерах) связывает изображения, поэтому эти наборы изображений связаны.
Я пытаюсь прочитать файлы в numpy массив, а затем объедините три связанных изображения в новое изображение 100x100x3 или 100x300.
Я могу с радостью прочитать изображения из набора A в один массив, а затем изображения из B и C установить в свои индивидуальные массивы. Однако как только я это сделаю, я больше не могу проверять имена файлов и то, что изображения находятся в том же порядке, поэтому, если изображение 0 в массиве A является правильным связанным изображением в массивах B и C. Я могу это сделать, и он успешно работает, но я не уверен, что это лучшее решение.
Поскольку номер каждого изображения уникален, я хочу закодировать решение, которое читается в именах файлов и проверяет что три изображения имеют одинаковый уникальный номер и представляют собой набор, например A, B, C изображений, а затем объединяет их соответствующим образом. Я борюсь с этим, если бы кто-то мог указать мне в правильном направлении, что было бы здорово.
Не уверен, насколько хорошо я это объяснил, поэтому, если вам нужны разъяснения, спросите.
Спасибо
Обновление:
Этот код (см. Ниже) дает мне набор уникальных имен файлов в каталоге и подкаталоге. Возможно, это не самый эффективный вариант, но он работает. Сейчас я пытаюсь использовать этот l oop поверх фактических файлов изображений, чтобы сравнить и объединить или объединить три изображения с каждым уникальным идентификатором.
#Set directory to look in
file = glob.glob(r'my_directory\**\*.tif',recursive = True)
#Loop though the files and put all the uniques files name into a list
fname_lst = []
for img in file:
i = img.split('\\')[5][:-12]
fname_lst.append(i)
fname_lst = set(fname_lst)
Очевидно, что .split уникален к моим именам файлов, но он работает.