Как я могу интерполировать каждый цвет отдельно (т.е. экспортировать изображение только с красным цветом) с помощью dcraw?

Я делаю проект, в котором мне нужно экспортировать 3 разных изображения из необработанного файла (DNG или RAF), каждое изображение имеет свой цвет (красный, зеленый и синий). Я использую dcraw.c, декодер необработанных фотографий Дэйва Коффина. Я не знаю, как я могу сделать это с помощью этого программного обеспечения, вы предлагаете другие альтернативы?

С наилучшими пожеланиями

Вам нужно экспортировать сразу в три отдельных изображения, или вы можете, например, экспортировать в PNG или JPG, а затем разделить каналы? Я не уверен , что dcrawесть варианты сделать это; по крайней мере, версия, которую я запускаю, - если да, то это (довольно) недавнее дополнение...
Я не думаю, что были какие-либо дополнения в dcrawтечение некоторого времени. Похоже, ОП хочет данные, которые еще не прошли алгоритм демозаики.
Да, мне нужны изображения, которые не прошли через алгоритм демозаики, я просто хочу получить по одному изображению для каждого канала. Но я думаю, что у dcraw нет этой опции.

Ответы (2)

dcraw не может сделать это напрямую, но он может сделать кое-что, что поможет вам довольно близко: визуализировать каждый пиксель в оттенках серого либо с немасштабированными значениями пикселей с помощью , -Dлибо с масштабированными с помощью -d. Это даст вам изображение в формате PGM, которое будет выглядеть следующим образом (обрезано и увеличено, поэтому каждый квадрат равен одному пикселю):

в основном сырой

На этом изображении яркие точки оказались пикселями с синей фильтрацией. Вы можете обрабатывать это изображение различными способами, чтобы извлечь только одно и отбросить другое. Вам, конечно, придется решить, что вы хотите сделать с пространственным несоответствием, потому что, конечно (это не датчик Foveon), различные цвета смещены друг от друга. Один простой подход — просто разделить все это пополам в каждом направлении (четвертование площади).

Если вы хотите сделать это менее хакерским способом, попробуйте LibRaw , библиотеку C/C++, которая во многом является преемницей dcraw. Вы можете написать простую программу для получения нужных данных и делать с ними все, что хотите. Это, однако, выходит за рамки фотографии, на самом деле, и, вероятно, лучше на Stack Overflow.

Да, этот подход работает хорошо. Я широко использовал его в качестве предшественника чтения полученного «изображения» с помощью C ++ или Matlab, а затем индивидуальной обработки цветов. Обычно они располагаются в виде квадрата 2х2.
Спасибо за отзыв, попробую и позже напишу некоторые выводы.

Я не знаю ни одного конвертера необработанных данных ( dcraw, ufraw, и т. д.), который сделает это за вас. Но если у вас установлен ImageMagick, вы можете использовать dcrawдля создания TIFF, а затем просто выполните:

convert -channel red -separate myimage.tif red.pgm

Чтобы извлечь все каналы в отдельные файлы, вы можете использовать:

convert myimage.tif -separate myimage_%d.pgm