2

一段时间后,在尝试了这里这里这里这里这里的“提示”、“提示”、“猜测”和“试验”之后,甚至通过这里和其他地方给出的 SO 问题,并在这里使用了几个软件,在这里这里,我仍然无法找到如何通过命令行转换 DNG 原始图像文件的功能示例。

我不是在寻找所有案例的解决方案,只是一个转换任何给定 DNG 图像的功能命令行示例。

是最好的,但是,很好,不要跑,因为“一个人会错过那重要的一步”(谢谢!)。

只不过是一个“提示”,没有实际转换任何文件。从这里开始,我无法进一步进行所需的正确转换(图像看起来太“暗”)。

命令行程序需要一些“dcraw配置”(哪一个?)以防止颜色偏差,以及“从图片中心到外部的阴影环”,同时将其 tiff 输出与适当的 Adob​​e 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);
4

2 回答 2

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

为了测试它,我从这个网站下载了“L1004235.DNG”并将它放在与这个函数相同的目录中。

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

参考:我根据您参考的这篇博客文章help Tiff和.

于 2017-09-01T21:40:16.510 回答
1

raw2dng 可以满足您的需求 - Linux 命令行工具可将任何原始格式(包括 DNG)转换为 DNG/JPG/TIFF。

请注意,原始格式的转换/“开发”不是一个定义明确的过程——不同的程序会得到不同的结果。此外,相机(尤其是手机相机)对其 DNG 中缺少的 JPG 进行各种处理(例如,锐化)。

于 2017-09-04T21:25:14.057 回答