【问题标题】:Command Line Read DNG Images命令行读取 DNG 图像
【发布时间】:2017-09-01 02:33:12
【问题描述】:

一段时间后,在尝试hereherehereherehere 中的“提示”、“提示”、“猜测”和“试验”之后,即使通过给定在here 和其他人中的SO 问题,以及在hereherehere 中使用的几个软件,我仍然无法找到如何转换 DNG 的功能示例原始图像文件通过命令行。

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

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

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

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);

【问题讨论】:

  • 请更新您的帖子,说明“原始指南”不适合您的真正原因;并保持专业。
  • 在这两种方法中,图像都被“变暗”了。我认为有一个非线性滤波器,一个demosaicing 阶段,并且缺少一些亮度设置。从所有给定的参考资料来看,哪一个(如果不是全部)和/或按哪个顺序完全是个谜。

标签: matlab tiff dng


【解决方案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 posthelp Tiff 将这段代码放在一起。

【讨论】:

  • 如果这不起作用,您可能需要再次查看raw guide。听起来和看起来作者的脚本可以很好地加载 DNG 文件。然而,与其方便地包含 DNG 示例文件,他/她认为读者练习转换为 .DNG 是很重要的。既然你已经有了.DNG文件,就不能跳过这一步吗?
  • 但是这段代码和我已经从那个“提示”参考中制作的一样!当然没有检查文件是否存在(我们知道它存在)。我进一步加入了demosaic 舞台,但我获得的图像比真实场景“暗”得多,并且中心有一个环形阴影。因此,给出的“提示”只是问题的一小部分。并且“原始指南”中的代码不会运行。它在 mxnx3(图像?)与 nxn 矩阵(过滤器?)之间的乘法失败,即使使用给定的数据 (!)。
  • @hyprfrcb 请再看一下这段代码。在非常关键的部分(即“SubIFD”)中是不一样的。包含此内容时,我的图像也会更暗。您也可以通过imtool 获得更多里程。
  • 我也有同样的黑暗问题。那是我失败的部分。
  • 另外,通过t.read();,您正在读取存储在 DNG 文件中的缩略图。至少参考文献是这么说的。我会检查这是不是真的。
【解决方案2】:

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

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

【讨论】:

  • 以稍短的形式重新发布,因为它回答了问题,但原帖被删除了。
  • 我认为上一篇文章真的很完整......虽然我还不确定这个工具是否有效(我必须尝试一下:))
  • 是的,确实如此。确保您拥有所有声明的依赖项。如果您遇到问题,请提交带有描述的错误。
猜你喜欢
  • 1970-01-01
  • 2018-10-24
  • 1970-01-01
  • 2013-09-13
  • 2022-11-30
  • 1970-01-01
  • 2018-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多