Командная строка для чтения изображений DNG
Через некоторое время, после попытки "подсказок", "подсказок", "догадок" и "испытаний" здесь, здесь, здесь, здесь и здесь, даже через заданные вопросы SO здесь и другие, и с использованием нескольких программ здесь Здесь и здесь я до сих пор не могу найти функциональный пример того, как преобразовать файл необработанного изображения DNG через командную строку.
Я не ищу решения для всех случаев, просто пример функциональной командной строки, преобразующий любой заданный образ DNG.
Это лучшее, но, великолепно, не бегать, потому что "пропустить этот важный шаг" (спасибо!).
Это не что иное, как "совет", оставляя без какого-либо файла на самом деле преобразованы. Отсюда я не могу идти дальше, делая правильное преобразование (изображение выглядит слишком "темным").
dcraw
программе командной строки, требуется некоторая "конфигурация" (какая?), чтобы не получать отклонения цветов, и "теневое кольцо от центра изображения к внешнему виду", сравнивая при этом вывод tiff с соответствующим Adobe Converter, который к сожалению, это не командная строка (вызов командной строки):
dcraw -T filename
Лучший функциональный неполный код, для которого должен быть простой dngread
Функция следующая (Matlab Code):
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);
2 ответа
Вы можете попробовать эту функцию
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
,
raw2dng делает то, что вы ищете - инструмент командной строки Linux для преобразования любого необработанного формата (включая DNG) в DNG/JPG/TIFF.
Обратите внимание, что преобразование / "разработка" raw-форматов не является четко определенным процессом - вы получите разные результаты с разными программами. Кроме того, камеры (особенно мобильные телефоны) применяют все виды обработки к своему JPG (например, повышение резкости), которое отсутствует в их DNG.