经过一段时间后,在here,here,here,here和here之后尝试了“提示”,“提示”,“猜测”和“试用”。 here,即使通过here和其他人提出的SO问题,并使用here,here和This中的多个软件,我仍然无法使用找到如何通过命令行转换DNG原始图像文件的功能示例。
我不是在寻找所有案例解决方案,只是转换任何给定DNG图像的功能命令行示例。
This是最好的,但是,很棒,不要跑,因为“人们会错过这一重要的一步”(谢谢!)。
ASCII table只不过是一个“提示”,没有任何文件实际转换而遗漏。从这里开始,我无法进一步完成所需的正确转换(图像看起来太“暗”)。
dcraw
命令行程序,需要一些“配置”(哪一个?)以避免颜色偏差,以及“从图片中心到外部的阴影环”,同时比较它用适当的Adobe转换器输出tiff,不幸的是命令行(命令行调用):
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);
答案 0 :(得分:1)
您可以尝试此功能
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
为了测试它,我从这个website下载了“L1004235.DNG”并将它放在与此功能相同的目录中。
rawData = loadDNG('L1004235.DNG'); % load it "functionally" from the command line
imtool(rawData); % display it as proof of concept.
参考:我根据您引用的blog post和help Tiff
将此代码放在一起。
答案 1 :(得分:1)
raw2dng做你想要的 - Linux命令行工具将任何原始格式(包括DNG)转换为DNG / JPG / TIFF。
请注意,原始格式的转换/'开发'不是一个明确定义的过程 - 您将在不同的程序中获得不同的结果。此外,相机(尤其是手机)可以对其DNG中缺少的JPG(例如,锐化)进行各种处理。