2017-09-01 171 views
0

过了一段时间,甚至通过在here给定的SO问题在hereherehereherehere,尝试了“提示”,“提示”,“猜测”和“试验”后其他方面,在hereherehere使用几种软件,我仍然没有能够找到一个功能例如如何将DNG原始图像文件通过命令行转换从命令行读取DNG图片

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

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

This不过是“小费”,而忽略了实际上不转换的任何文件。从这里,我不能进一步做出正确的转换(图像看起来太“黑暗”)。

dcraw命令行程序,需要一些“配置”(哪一个?)以避免颜色偏差,以及“从图片中心到外部的阴影环”,同时将其tiff输出与正确的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); 
+1

请更新与真正的原因是,“原始指南”对你没有工作,你的职位;并保持专业。 – informaton

+0

在这两种方法中,图像变得“变暗”。我认为有一个非线性滤波器,一个“去马赛克”阶段,并且缺少一些亮度设置。哪一个(如果不是全部的话)和|或者哪一个顺序是来自所有给定参考的完整的神秘莫测。 – hyprfrcb

回答

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

如果这不起作用,您可能需要再次查看[原始指南](http://www.rcsumner.net/raw_guide/)。这听起来像是作者的脚本会加载DNG文件。然而,他/她认为这是向读者实践转换为.DNG的重要方式,而不是方便地包含DNG示例文件。既然你已经有了.DNG文件,难道你不能跳过这一步吗? – informaton

+0

但是这个代码和我已经从那个“提示”中引用的代码是一样的!,当然没有检查文件是否在那里(我们知道它是)。我还进一步包括了“demosaic”舞台,但是我得到的图像比真实场景要“暗”得多,并且中心有一圈环形阴影。所以给出的“小费”只是问题的微不足道的部分。并且“原始指南”中的代码不会运行。它在'mxnx3'(图像?)和'nxn'矩阵(过滤器?)之间的乘法运算中失败,即使是给定的数据(!)也是如此。 – hyprfrcb

+0

我会检查给定的图像..... – hyprfrcb

1

raw2dng做你要找的 - Linux命令行工具将任何原始格式(包括DNG)转换为DNG/JPG/TIFF。

请注意,原始格式转换/“发展”是不是一个定义良好的过程 - 你会得到不同的项目不同的结果。此外,相机(特别是手机)会将各种处理应用于其DNG所缺少的JPG(例如锐化)。

+1

以稍短的格式重新发布,因为它回答了问题,但原始帖子被删除。 – Fimagena

+0

以前的帖子是真正完整的,我认为...虽然我不知道如果这个工具的工作(我必须尝试:) :) – hyprfrcb

+0

这个项目不编译.......有没有建​​立可执行文件? – hyprfrcb