Как добавить информацию о цветовом пространстве в файл формата Radiance HDR, созданный с помощью «imwrite» в OPenCV - PullRequest
0 голосов
/ 20 октября 2019

Я преобразовал изображение HDR в цветовом пространстве RGB в цветовое пространство CIE-XYZ с помощью функции "cvtColor", а затем записал изображение в файл Radiance HDR с помощью функции "imwrite". Однако заголовок файла Radiance HDR по-прежнему гласит «FORMAT = 32-bit_rle_rgbe». Что я должен передать «imwrite», чтобы убедиться, что оно правильно определяет цветовое пространство?

Я следую коду, как в этом примере: https://docs.opencv.org/3.4/d3/db7/tutorial_hdr_imaging.html (за исключением части тонального отображения, которая не имеет значенияк моей проблеме). Мне нужна информация об относительной яркости, поэтому я попытался преобразовать изображение HDR, которое по умолчанию находится в пространстве BGR, в пространство CIE-XYZ, используя код, показанный ниже.

/* Codes to read in images and construct the camera response function 
can be found from the link above, though I am happy to post the whole 
if needed.*/
//! [Make HDR image]
std::cout << "Now make HDR file" << endl;
Mat hdr;
Ptr<MergeDebevec> merge_debevec = createMergeDebevec();
merge_debevec->process(images, hdr, times, response);

/* The hdr is in BGR color space by default. 
Therefore, convert it to XYZ space by the following two lines. */
Mat hdr_xyz;
cv::cvtColor(hdr, hdr_xyz, CV_BGR2XYZ);

//! [Write results]
std::cout << "Now write to files" << endl;
cv::imwrite("hdr.hdr", hdr);
cv::imwrite("hdr_xyz.hdr", hdr_xyz);

Кажется, что большая часть кода работает, и получающееся изображение HDR, кажется, было преобразовано правильно (судя по числам в матрице "hdr_xyz").

Однако,В результате HDR-файл "hdr_xyz.hdr" по-прежнему имеет следующий заголовок: "#? RGBE FORMAT = 32-bit_rle_rgbe" В результате изображение не может быть правильно отображено с помощью "imshow" или таких программ, как Photoshop. Я также попробовал программу "hdrgen" Грега Уорда (http://www.anyhere.com/). Созданный файл HDR имеет заголовок "FORMAT = 32-bit_rle_xyze" и правильно отображается в Photoshop. Думаю, это легко исправить (ноЯ новичок в OpenCV). Любые предложения с благодарностью.

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