【问题标题】:HDR to TIF on MatlabMatlab 上的 HDR 到 TIF
【发布时间】:2023-03-14 20:28:01
【问题描述】:

早上好,

我决定发布这个新线程,因为我不知道如何将一组 hdr 图像转换为 tif(我不知道是否也可以使用 Matlab(通常,我使用 ERDAS 图像处理软件) . 我想做的是以下几点:

myFolder= 'G:\HDR\2'
filePattern = fullfile(myFolder, '*.hdr');
hdrFiles = dir(filePattern);

for k = 1:length(hdrFiles)
  baseFileName = hdrFiles(k).name;
  fullFileName = fullfile(myFolder, baseFileName);

  hdr = hdrread(fullFileName);
  rgb = tonemap(hdr);
  hdrwrite (hdr, filename) % I don't know how to indicate .TIF on that part
end

我不知道如何将 hdr 文件转换为 tif。执行此操作后,错误如下:

Error using hdrread>readHeader (line 62)
Not a Radiance file.

Error in hdrread (line 29)
fileinfo = readHeader(fid);

代码可能有问题,或者无法使用 Matlab 转换该文件?

提前谢谢大家!任何形式的帮助将不胜感激!

【问题讨论】:

  • hdrwrite 写入 hdr 文件。您可以使用tonemap 将 hdr 转换为 RGB,并使用imwrite 写入 tif 文件。
  • 保存为tif后,也无法使用hdrread打开文件,因为它只能打开hdr文件。您需要使用imread
  • 感谢 2cents 的帮助!我已经用那部分 (imwrite(rgb, fullFileName)) 结束了代码,但我仍然收到相同的消息:不是 Radiance 文件。 hdrread 错误(第 29 行)fileinfo = readHeader(fid);
  • 第 29 行是您在 hdr 文件中读取的位置吗?如果是这种情况,您的 hdr 格式可能与 Matlab 的 hdr 格式不同。您如何制作 hdr 图像?
  • fmask 工具似乎无法制作 hdr 图像。它的主要输出 XXXFmask 是一个识别土地、水、雪和云的蒙版。如果这是您要保存的文件,我会简单地使用saveimwrite 函数。如果您想制作 hdr 图像,我会尝试makehdr

标签: matlab hdr


【解决方案1】:

对于 JPEG,它是一种低动态范围格式。 因此,如果您正在创建高动态范围图像,您不希望将其保存为低动态范围格式。 您希望将其保存为可包含完整动态范围(TIFF、PSD/PSB、EXR、HDR 等)的格式。

您可以应用色调映射将 HDR 图像转换为 LDR,然后将其保存为 LDR 格式。 但它不再是 HDR 图像。 如果您使用的是 mac os macphun,请试用此编辑器,祝您好运!

【讨论】:

    猜你喜欢
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    相关资源
    最近更新 更多