2 votes

Ligne de commande pour lire les images DNG

Au bout d'un certain temps, après avoir essayé les "conseils", "astuces", "suppositions" et "essais" dans aquí , aquí , aquí , aquí y aquí même à travers les questions de l'OS données dans aquí et d'autres, et en utilisant plusieurs logiciels dans aquí , aquí y aquí Je ne parviens toujours pas à trouver un système d'alerte. exemple fonctionnel de comment convertir un fichier image brut DNG par la ligne de commande.

Je ne cherche pas une solution universelle, mais simplement un exemple fonctionnel de ligne de commande pour convertir une image DNG donnée.

Este est le meilleur, mais, super, ne courez pas car "on manquerait cette étape importante" (merci !).

Este n'est rien d'autre qu'un "conseil", laissant de côté sans aucun fichier réellement converti. A partir de là, je ne peux pas aller plus loin dans la conversion requise (l'image semble trop "sombre").

En dcraw nécessite une certaine "configuration" (laquelle ?) pour ne pas obtenir une déviation des couleurs, et un "anneau d'ombre du centre de l'image vers l'extérieur", tout en comparant sa sortie tiff avec le bon Adobe Converter, qui n'est pas en ligne de commande malheureusement (Command Line Call) :

dcraw -T filename

Le meilleur code fonctionnel incomplet pour lequel devrait être une simple dngread est la suivante (code 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);

1voto

informaton Points 1203

Vous pouvez essayer cette fonction

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

Pour le tester, j'ai téléchargé le fichier 'L1004235.DNG' à partir de ce site. site web et le placer dans le même répertoire que cette fonction.

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

Référence : J'ai mis ce code ensemble en me basant sur ceci article de blog que vous référencez et help Tiff .

1voto

Fimagena Points 131

raw2dng fait ce que vous cherchez - Outil de ligne de commande Linux pour convertir tout format brut (y compris DNG) en DNG/JPG/TIFF.

Veuillez noter que la conversion/le "développement" des formats bruts n'est pas un processus bien défini - vous obtiendrez des résultats différents avec des programmes différents. En outre, les appareils photo (notamment ceux des téléphones portables) appliquent toutes sortes de traitements à leurs fichiers JPG (par exemple, l'accentuation de la netteté) qui sont absents de leurs fichiers DNG.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X