Читать, обрабатывать и показывать пиксели в изображениях формата .EXR - PullRequest
2 голосов
/ 07 апреля 2019

Я хочу прочитать изображения формата exr и увидеть интенсивность пикселей в соответствующем месте. И также хотел сложить их вместе, чтобы дать им в нейронной сети. Как я могу сделать обычную обработку изображений в таких форматах? Пожалуйста, помогите мне в этом!

Я пробовал этот код, используя файл OpenEXR, но не могу продолжить.

import OpenEXR
file = OpenEXR.InputFile('file_name.exr')

Я ожидаю увидеть обычные инструменты для обработки изображений, такие как

file.size()
file.show()
file.write('another format')
file.min()
file.extract_channels()
file.append('another exr file')

1 Ответ

1 голос
/ 07 апреля 2019

Похоже, что в OpenEXR отсутствуют такие необычные функции обработки изображений, как отображение изображений или сохранение изображения в другом формате. Для этого я бы предложил вам использовать OpenCV, который полон функций обработки изображений.

Что вам, возможно, понадобится сделать:

  • Считайте exr, используя только OpenEXR, затем извлеките каналы и преобразуйте их в пустые массивы как rCh = np.asarray(rCh, dtype=np.uint8)
  • Создайте RGB-изображение из этих пустых массивов как img_rgb = cv2.merge([b, g, r]).
  • Используйте функции OpenCV для перечисленных операций:
    • Размер: img_rgb.shape
    • Показать: cv2.imshow(img_rgb)
    • Запись: cv2.imwrite("path/to/file.jpg", img_rgb)
    • Мин: np.min(b), np.min(g), np.min(r)
    • Извлечение каналов: b, g, r = cv2.split(img_rgb)
...