[英]Command Line Read DNG Images
一段時間后,在嘗試了here 、 here 、 here 、 here和here中的“提示”、“提示”、“猜測”和“試驗”之后,甚至通過here和其他人中給出的SO問題,並使用here中的幾個軟件,在這里和這里,我仍然無法找到有關如何通過命令行轉換 DNG 原始圖像文件的功能示例。
我不是在尋找所有情況的解決方案,只是一個轉換任何給定 DNG 圖像的功能命令行示例。
這是最好的,但是,太好了,不要運行,因為“一個人會錯過那重要的一步”(謝謝!)。
這只是一個“提示”,沒有實際轉換任何文件。 從這里開始,我無法進一步進行所需的正確轉換(圖像看起來太“暗”了)。
dcraw
命令行程序,需要一些“配置”(哪個?)才能避免顏色偏差,以及“從圖片中心到外部的陰影環”,同時將其 tiff 輸出與適當的 Adobe 轉換器進行比較,不幸的是這不是命令行(命令行調用):
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.