Как я могу улучшить результаты моего собственного конвейера обработки RAW?

Я провожу эксперимент с обработкой изображений Raw, используя два инструмента постобработки:

  1. Adobe PhotoShop (PS) CS5
  2. Собственный код конвейера обработки изображений.

Сбор данных:

Я сделал несколько необработанных изображений с помощью Nokia-900 в формате DNG. Этот DNG имеет данные массива цветовых фильтров (необработанные данные Байера), которые извлекаются и передаются в качестве входных данных для проприетарного кода. Проприетарное программное обеспечение не использует какие-либо метаданные/Exifdata, присутствующие в файле DNG. Adobe PS использует файл DNG в качестве входных данных для обработки. Я хочу получить комментарии от экспертов о визуальном качестве этих двух выходных данных, критическом сравнении между ними на основе различных факторов, таких как шум изображения, резкость (размытие), точность цветопередачи, яркость, контрастность, цветовые оттенки, окантовка цветности, если таковые имеются, и любой другой параметр, на который вы можете мне указать.

  1. Я боюсь, что вывод моего кода хуже, чем вывод Adobe PS, и хочу исправить/исправить это любым возможным способом.

  2. Возможно, Adobe PS использует какие-то дополнительные метаданные из файла DNG или у него есть более совершенные алгоритмы для обработки изображения, я хотел бы понять, что именно здесь происходит.

Этапы обработки:

Шаги, необходимые для получения выходных данных из двух конвейеров обработки, следующие:

  1. Вывод из Adobe PS: загрузите DNG, цветовой баланс, чтобы удалить любые оттенки, отрегулировав ползунок цветовой температуры, затем примените нерезкую маску (количество — 100%, радиус — 2 пикселя, порог — 65), шумовой фильтр — медиана (радиус — 1 пиксель). , Сохраните обработанное изображение в формате BMP.

  2. Вывод из собственного продукта: демозаика (алгоритм AHD), балансировка цвета с использованием матрицы цветокоррекции, автоматическая балансировка белого PErform с использованием собственного алгоритма, преобразование цвета RGB-> YUV, нерезкое маскирование (собственный алгоритм только для компонента Y), фильтр срединного шума по Y,U,V (стандартный медианный фильтр 3x3 на изображении), гамма-коррекция, преобразование цвета YUV->RGB, сохранение в формате BMP.

Полученные результаты:

Ниже приведены два изображения (они загружены сюда в формате JPEG). Что лучше, и что можно сделать, чтобы улучшить второе?

  1. Выход Adobe PS:Выход Adobe PS

  2. Выход из проприетарного конвейера обработки изображений:Выход из проприетарного конвейера обработки изображений

Являются ли изображения 100% обрезками или уменьшенными версиями всего изображения?
Кто-то делает какие-то технические вещи для своего урока фотографии...
Исходя из "что можно сделать, чтобы улучшить второй?", подозреваю, что у вас уже сложилось мнение о том, какой из них лучше. Имеет ли смысл превратить это в что-то вроде «Как работает процессор RAW?»
@coneslayer: я пытался вставить изображения с полным разрешением (1296x984) в этот пост, но, похоже, они были обрезаны/уменьшены. Так что я не знаю точно, что он сделал бы, чтобы масштабировать. @D.Lambert: Разве второе изображение не выглядит шумным с большим количеством шума в темных областях. @ElendilTheTail: Не для любого класса, но это то, чем я зарабатываю себе на жизнь!
@goldenmean Можете ли вы также опубликовать 100% урожай. Хотя я подозреваю, что шум на втором изображении настолько плох, что вы не получите внятных ответов, пока не исправите это первым.
Не ответ на ваш вопрос, но могу я спросить , почему вы это делаете? Если вы хотите поэкспериментировать с одной частью конвейера (и не планируете распространять свою работу), вы можете в частном порядке исправить программу dcraw под лицензией GPL .
Является ли здесь вопрос «Как я могу улучшить результаты моего собственного конвейера обработки RAW?»
@fmark: я делаю это для своей работы. Мне было бы интересно внести свой вклад в программу dcraw. Какой алгоритм используется в dcraw? Это демозаика или какой-то другой блок? Как я могу это сделать? @mattdm: Да, это конечная цель, поэтому для ее достижения хотелось бы получить информацию о сравнении двух выходных данных для разных параметров качества изображения.
photo-SE не является ни сайтом фотокритики, ни сайтом программирования, поэтому лично мне трудно понять, почему этот вопрос не лучше задавать в SO...
Таким образом, я голосую за то, чтобы закрыть его здесь, на photo-SE, и рекомендую перенести его на SO.
@Jay: Если бы здесь искали совет по реализации, я бы согласился с переходом на SO. Но я думаю, что он запрашивает информацию об относительном качестве вывода — точности цветопередачи, шуме и т. д. Тот же вопрос можно задать, например, о коммерческих продуктах, таких как Silkypix и ACR. Это не вопрос программирования.
@Jay Lance Photography: я не думаю, что мой вопрос требовал каких-либо советов/вкладов, связанных с программированием. Так что ТАК не может быть и речи. Я видел много сообщений здесь, на photoSE, в которых пользователи размещали изображения и просили прокомментировать «качество» фотографии или внести свой вклад в различные аспекты фотографии. Ответ, приведенный ниже, определенно повышает ценность форума, и, следовательно, вопрос может оставаться открытым и, если возможно, получить более конструктивные, полезные и актуальные ответы.

Ответы (1)

Мне немного сложно выбрать один как радикально «лучше», чем другой.

Ваш явно показывает больше шума, но, по крайней мере, на первый взгляд, он также выглядит заметно резче. Если бы мне нужно было выбрать одну из них в качестве отправной точки для обработки, я бы предпочел вашу, но если бы мне пришлось рассматривать ее как готовый продукт, я бы, вероятно, предпочел Adobe — по крайней мере, для типичных изображений людей, где большинство людей в любом случае предпочел бы (во всяком случае) потерять немного деталей.

Вы определенно лучше справились с гамма-рампой — ваша шкала серого выглядит примерно равномерно распределенной. В версии Adobe два самых светлых блока в шкале серого (только для одного примера) практически неразличимы.

Мне кажется, что вы получили цвет более точным в целом. Чтобы помочь измерить это, вы можете получить данные проверки цвета MacBeth — как официальные цифры, опубликованные Gretag-MacBeth, так и фактические измерения. Чтобы использовать это, вы, вероятно, захотите выбрать цветовое пространство, на которое вы ориентируетесь (вероятно, sRGB), и сравнить свои числа со средними измеренными числами для этого цветового пространства. Вы можете (например) вычислить deltaE для каждого патча как для ваших собственных результатов, так и для результатов Adobe.

Чтобы сделать это, вы должны начать с усреднения значений в каждом патче, чтобы устранить эффекты шума. Например, ваш будет выглядеть примерно так:

введите описание изображения здесь

Затем вы можете (например) получить значения RGB в Photoshop в информационном окне (и я уверен, что GIMP предоставляет то же самое, хотя я не использовал его достаточно недавно, чтобы помнить имя, которое он использует для интересующего вас окна) .

Вставьте их в электронную таблицу, добавьте формулу для deltaE , и все готово. Если вы хотите, вы можете (например) создать из него цветовой профиль, чтобы свести к минимуму измеренные ошибки, используя редактор профилей Adobe DNG или различные другие возможности . Конечно, это полезно только в том случае, если ваш конвейер поддерживает стандартный профиль ICC. Если вас интересует только один конкретный источник, вы можете просто изменить используемую матрицу (или добавить матрицу, если вы ее не используете). Опять же, как я уже сказал, ваша точность цветопередачи в любом случае лучше, чем у Adobe, поэтому вы можете считать, что это достаточно хорошо, и сосредоточиться на других областях.