簡體   English   中英

命令行讀取 DNG 圖像

[英]Command Line Read DNG Images

一段時間后,在嘗試了hereherehereherehere中的“提示”、“提示”、“猜測”和“試驗”之后,甚至通過here和其他人中給出的SO問題,並使用here中的幾個軟件,在這里這里,我仍然無法找到有關如何通過命令行轉換 DNG 原始圖像文件的功能示例

我不是在尋找所有情況的解決方案,只是一個轉換任何給定 DNG 圖像的功能命令行示例。

是最好的,但是,太好了,不要運行,因為“一個人會錯過那重要的一步”(謝謝!)。

只是一個“提示”,沒有實際轉換任何文件。 從這里開始,我無法進一步進行所需的正確轉換(圖像看起來太“暗”了)。

dcraw命令行程序,需要一些“配置”(哪個?)才能避免顏色偏差,以及“從圖片中心到外部的陰影環”,同時將其 tiff 輸出與適當的 Adob​​e 轉換器進行比較,不幸的是這不是命令行(命令行調用):

dcraw -T filename

最好的功能不完整代碼應該是一個簡單的dngread函數如下(Matlab 代碼):

function img=dngread(filename,options)
%% READ DNG IMAGE FILES

% READ BASIC INFO
info = imfinfo(filename);
info.SubIFDs{1};

% READ COLOR FILTER ARRAY
warning off MATLAB:tifflib:TIFFReadDirectory:libraryWarning
t = Tiff(filename,'r');
offsets = getTag(t,'SubIFD');
setSubDirectory(t,offsets(1));
cfa = read(t);
close(t);

% LINEARIZATION TABLE
%curve = info.SubIFDs{1}.LinearizationTable

% DEMOSAIC COLOR FILTER ARRAY
options.filter='rggb'
img=demosaic(cfa,options.filter);
% Image in here looks "dark"
imshow(img);

你可以試試這個功能

function [rawData, tinfo]= loadDNG(dngFilename)   
    if(exist(dngFilename,'file'))
        tinfo = imfinfo(dngFilename);
        t = Tiff(dngFilename,'r');
        rawData = t.read();
        t.close();
    else
        if(nargin<1 || isempty(dngFilename))
            dngFilename = 'File';
        end
        fprintf(1,'%s could not be found\n',dngFilename);
        rawData = [];
    end
end

為了測試它,我從這個網站下載了“L1004235.DNG”,並將其放置在與此功能相同的目錄中。

rawData = loadDNG('L1004235.DNG'); % load it "functionally" from the command line
imtool(rawData);                   % display it as proof of concept.

參考:我根據您參考並help Tiff這篇博文將這段代碼放在一起。

raw2dng 可以滿足您的需求 - Linux 命令行工具可將任何原始格式(包括 DNG)轉換為 DNG/JPG/TIFF。

請注意,原始格式的轉換/“開發”不是一個明確定義的過程 - 您將使用不同的程序獲得不同的結果。 此外,相機(尤其是手機相機)會對 DNG 中缺少的 JPG 進行各種處理(例如銳化)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM