2014-07-10 61 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,請試用此編輯器,祝您好運!