经过一段时间,在尝试了here中的“技巧”、“提示”、“猜测”和“试验”之后, here , here , here和 here ,即使通过here中给出的SO问题等,并使用 here 中的多个软件, here和 here ,我仍然无法找到如何通过命令行转换 DNG 原始图像文件的功能示例。
我并不是在寻找所有情况的解决方案,只是在寻找转换任何给定 DNG 图像的功能性命令行示例。
This是最好的,但是,太好了,不要运行,因为“人们会错过这一重要的一步”(谢谢!)。
This只是一个“提示”,没有实际转换任何文件。从这里开始,我无法进一步进行所需的正确转换(图像看起来太“暗”)。
dcraw
命令行程序,需要一些“配置”(哪一个?)以避免颜色偏差,以及“从图片中心到外部的阴影环”,将其 tiff 输出与正确的 Adobe Converter 进行比较时,不幸的是,它不是命令行(命令行调用):
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
为了测试它,我从 website 下载了“L1004235.DNG”并将其放在与此函数相同的目录中。
rawData = loadDNG('L1004235.DNG'); % load it "functionally" from the command line
imtool(rawData); % display it as proof of concept.
引用:我根据这个blog post拼凑出这段代码您引用并帮助 Tiff
。
关于matlab - 命令行读取 DNG 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45992585/