Как добавить информацию о цветовом пространстве в файл формата Radiance HDR, созданный с помощью "imwrite" в OPenCV
Я преобразовал изображение 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). Любые предложения приветствуются.