一段时间后,尝试了"提示","提示","猜测"one_answers"试验",此处,这里,这里,这里和这里,甚至通过给定的问题在此处和其他人中,并在此处,此处和此处使用多个软件,我仍然无法找到如何通过命令行转换DNG原始图像文件的函数示例。
我不是在寻找所有情况解决方案,而只是一个功能命令行示例转换任何给定的DNG图像。
这是最好的,但是,很棒,不要奔跑,因为"一个人会错过那个重要的步骤"(谢谢!)。
。这不过是一个"提示",没有实际转换任何文件而遗漏。从这里开始,我无法进一步进行适当的转换(图像看起来太"黑暗")。
dcraw
命令行程序,需要一些"配置"(哪个?不幸的是,适当的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 foundn',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(例如锐化)。