Изменение большого количества файлов DICOM (.dcm). - PullRequest
0 голосов
/ 07 июня 2018

простой вопрос, возможно, но я не делаю успехов и был бы признателен за помощь.

У меня есть список размером 422. В индексе 0 есть 135 путей к файлам .dcm.Например, «~ / images / 0001.dcm», «~ / images / 0135.dcm» В индексе 1 имеется 112 путей к изображениям, в индексе 2 - 110 и т. Д.

Все изображения имеют размер 512x 512. Я рассчитываю изменить их размер до 64 x 64.

Я впервые работаю с изображениями и данными .dcm, поэтому очень не уверен, как изменить размер.Я также не уверен, как получить доступ и изменить файлы в «внутреннем» списке, если хотите.

Что-то вроде этого не так?

IMG_PX_SIZE = 64 
result = []
for i in test_list:
    result_inner_list = []        
    for image in i:
    # resize all images at index position i and store in list
        new_img = cv2.resize(np.array(image.pixel_array (IMG_PX_SIZE,IMG_PX_SIZE))
        result_inner_list.append(new_img)
    # Once all images at index point i are modified, append them these to a master list.
    result.append(result_inner_list)

1 Ответ

0 голосов
/ 07 июня 2018

Вы, похоже, боретесь с двумя проблемами:

  • доступ к путям к файлам
  • изменение размера

Чтобы выиграть, лучше разделить эти двазадачи, пример кода ниже

IMG_PX_SIZE = 64 

def resize(image):
    # your resize code here similar to:        
    # return v2.resize(np.array(image.pixel_array(IMG_PX_SIZE,IMG_PX_SIZE))
    pass

def read(path):
    # your file read operation here
    pass


big_list = [['~/images/0001.dcm','~/images/0135.dcm'],
            ['~/images/0002.dcm','~/images/0136.dcm']]

resized_images = [[resize(read(path)) for path in paths] for paths in big_list]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...