matlab - 命令行读取 DNG 图像

标签 matlab tiff dng

经过一段时间,在尝试了here中的“技巧”、“提示”、“猜测”和“试验”之后, here , here , herehere ,即使通过here中给出的SO问题等,并使用 here 中的多个软件, herehere ,我仍然无法找到如何通过命令行转换 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);

最佳答案

你可以试试这个功能

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/

相关文章:

matlab - 使用四元数和欧拉角的不同结果

graphics - Rstudio/markdown/Word : no size options for tiff figures?

python - Python中的RAW图像处理

matlab - 使用 fmincon 进行约束最小化

python - MATLAB 在矩阵中使用方括号、分号和单引号

algorithm - QuickSort 的迭代实现中的无限循环?

c - fseek 到 32 位无符号偏移量

Java - 如何编写非常大(20,000x20,000 像素或更大)的 tif 图像

c++ - 从 jpg、dng 和 awr raw 文件获取元数据

c# - 将 RAW 图像文件读取为 GDI+ 位图