2014-07-10 59 views
1

早上好,HDR到TIF Matlab的

我决定发布这个新的线程,因为我不知道如何将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转换该文件?

在此先感谢大家!任何形式的帮助将不胜感激!

+2

[hdrwrite](http://www.mathworks.de/de/help/images/ref/hdrwrite.html)写入hdr文件。您可以使用[tonemap](http://www.mathworks.de/de/help/images/ref/tonemap.html)将hdr转换为RGB,并使用[imwrite](http://www.mathworks。 de/de/help/matlab/ref/imwrite.html)来编写tif文件。 – Cecilia

+1

保存为tif后,您也将无法使用[hdrread](http://www.mathworks.de/de/help/images/ref/hdrread.html)打开文件,因为它只会打开hdr文件。你需要使用[imread](http://www.mathworks.de/de/help/matlab/ref/imread.html?searchHighlight=imread)。 – Cecilia

+0

感谢2cents的帮助!我已经结束了该部分的代码(imwrite(rgb,fullFileName)),但我仍然收到相同的消息:不是Radiance文件。 hdrread中的错误(第29行) fileinfo = readHeader(fid); – user1578688

回答

0

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

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