2016-08-12 3 views
1

Я стараюсь читать .hdr файлов, как это:Открытые .HDR файлов с OpenCV

img = cv2.imread(sys.argv[1]) 
cv2.imshow('Image', img) 

Это дает мне 3-канальный 8-разрядный Mat, который является либо (почти) полностью белой или очень темной картиной. Полагаю, это только дает мне одно изображение последовательности экспозиции? Как я могу получить Mat всю информацию?

+0

Проверьте [это] (http://docs.opencv.org/trunk/d3/db7/tutorial_hdr_imaging.html#gsc.tab=0) – Miki

+0

Это статья о загрузке списка файлов изображений, а не a. hdr-файл. –

ответ

1

данные, которые вы это слиты стек не отдельные экспозиции. Чтобы отобразить его правильно, вам необходимо отобразить данные. Это правильная процедура, например:

Mat hdr = imread("xxx.hdr",-1); // correct element size should be CV_32FC3 
Mat ldr; 
Ptr<TonemapReinhard> tonemap = createTonemapReinhard(2.2f); 
tonemap->process(hdr, ldr); 
ldr.convertTo(ldr, CV_8UC3, 255); 

Затем отобразите ваш ldr с помощью highgui.

+1

Это C++ для вопроса python, но на самом деле он отвечает на него. Хорошая вещь. – grochmal

+0

HA HA! Слишком сконцентрировано. Ну что ж. – jamalin

+0

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

 Смежные вопросы

  • Нет связанных вопросов^_^