Почему этот портрет не снят с резкостью f/29?

Меня смущает, почему эта картинка нерезкая. Это портрет, снятый при F/29 ISO100 1/250 с объективом 17-85 мм, сфокусированным на 38 мм. Расстояние до объекта составляло 1,2 м. Мое приложение DOF сообщает мне, что мой DOF должен был быть ~ 82,98 см или примерно 1M.

Меня смущает, почему эта картинка не такая резкая, как должна быть. Для этого снимка экрана я увеличил его до 200%. Это такое сильное размытие при 200% нормальном?

РЕДАКТИРОВАТЬ: У некоторых людей есть вопросы о ГРИП в этом снимке, поэтому вот некоторая информация, которую можно почерпнуть из любого онлайн-калькулятора ГРИП. Моя оценка 82,8 см была получена из приложения, а 1,2 м — из информации EXIF. С помощью этого онлайн-инструмента глубина резкости при F28 будет следующей:

 Subject distance   1.2 m

 **Depth of field** 
 Near limit     0.84 m
 Far limit      2.13 m
 Total          1.29 m

 In front of subject        0.36 m  (28%)
 Behind subject             0.93 m  (72%)

 Hyperfocal distance         2.7 m
 Circle of confusion       0.019 mm

Это верно еще и потому, что именно на таком расстоянии я находился от камеры — 1,2 м. Так что для того, чтобы этот снимок был не в фокусе, мне нужно было находиться примерно в полуметре от камеры, чего я не помню. Возможно, наблюдаемое на этой фотографии размытие не связано с тем, что объект находится не в фокусе.

портрет F/29 ISO100 1/250

дифракция играет роль на этой апертуре
Определенно связано, если не совсем дубликат: что такое «дифракционный предел»? .
Объектив был сфокусирован на 38мм или 38см? мм кажется маловероятным.
Как я уже упоминал, фокусное расстояние было 38 мм. Расстояние до объекта составляло 1,2 м.
Нигде в вашем описании ваших настроек вы не сказали, на какое расстояние был сфокусирован ваш объектив. Обратите внимание, что это не имеет никакого отношения к фокусному расстоянию вашего зум-объектива. Насколько нам известно, вы могли сфокусировать объектив на бесконечность. Хорошо, может быть, не бесконечность, а просто отсутствие фокуса — вероятный кандидат.
«Сфокусировано на» и «фокусное расстояние» — это два разных понятия. Подробнее здесь .
Также важно учитывать размер используемого носителя (или датчика). Одно дело — f/29 на датчике размера APS-C, другое — на полнокадровом датчике, и совсем другое — использовать широкоформатную камеру (настолько маловероятно, что это маловероятно для данного вопроса).
Пожалуйста, не редактируйте ответы в самом вопросе. (См. meta.photo.stackexchange.com/questions/1601/… ). Достаточно выбрать ответ с галочкой. Если ни один из ответов не охватывает полностью то, что вы узнали, не стесняйтесь добавлять свои собственные, а затем принимайте их .
если вы сфокусированы точечно, то диафрагма не имеет значения для этого пятна. но где был фокус в этом? МФ или АФ? стек фокуса показал бы это лучше.
Я предлагаю вам провести пару экспериментов, изменяя ТОЛЬКО диафрагму; поэтому продублируйте этот снимок, затем измените диафрагму на f/16. Используйте ручную фокусировку для обоих, чтобы точка фокусировки точно не менялась. Это покажет вам, насколько драматичен эффект дифракции для этого объектива/сенсора. Кроме того, если я что-то не упустил, увеличение до * 200 *% будет означать, что ваше изображение интерполируется программным обеспечением, что всегда снижает резкость. Никогда не выставляйте пиксели выше 100% :)
«~ 82,98 см или около 1 м». Нет, 82,98 см — это примерно 0,8298 м. Вы пропускаете около 17% этого расстояния. Возможно, это допустимо для камеры, но лично я бы не считал эти два значения близкими.
@corsiKa Нет, расстояние до объекта 1,2 м; Глубина резкости: Ближний предел: 0,84 м; Дальний предел: 2,13 м; Всего: 1,29 м Перед объектом: 0,36 м (28%) За объектом: 0,93 м (72%) Гиперфокальное расстояние: 2,7 м Круг нерезкости: 0,019 мм

Ответы (3)

Как упоминалось в других ответах, дифракция привела к нерезкости. Чтобы проверить это, можно попытаться повысить резкость изображения с помощью деконволюции, используя функцию рассеяния точки, соответствующую F/29. Для дифракции имеем (с точностью до общей нормировки)

P(s) = {J 1 [ π rs /( λF ) ] / [ π rs /( λF ) ] } 2

где J 1функция Бесселя первого рода порядка 1 ,
s — расстояние в изображении, измеренное в пикселях,
r — размер одного пикселя (обычно около 4,2*10^(-6) метров для кроп-сенсоров),
λ — длина волны света, а
F — число F, в данном случае 29.

Тогда это верно для монохроматического света, чтобы аппроксимировать функцию рассеяния точки для цветовых каналов, которую мы можем усреднить по некоторому подходящему диапазону длин волн. Кроме того, следует интегрировать P(s) по площади пикселя, заданной параметром s.

Если мы таким образом скомпилируем функции трехточечного расширения для трех цветовых каналов, мы сможем повысить резкость изображения, преобразовав его в линейное цветовое пространство и применив алгоритм деконволюции, а затем преобразовав обратно в sRGB. Я получил следующий результат:

Резкое изображение

Таким образом, резкость лица была значительно увеличена с использованием только данных о F-числе и предположениях о размере пикселя. В темной части изображения видны артефакты полос, это связано с постеризацией после преобразования обратно в sRGB.

По просьбе, я добавлю некоторые подробности об используемых программах. Я использовал ImageJ и ImageMagick , я также использовал Mathematica для вычисления функции разброса точек, но это также можно сделать в ImageJ. Я начну с объяснения того, как я выполняю деконволюцию с помощью ImageJ, когда у меня уже есть функция разброса точек. Чтобы выполнить деконволюцию, вам нужно установить плагин для ImageJ, я использовал этот плагин для этого случая, но есть и другие доступные плагины, например, плагин DeconvolutionLab .

Во-первых, вам нужно преобразовать в линейное цветовое пространство, я использовал ImageMagick для преобразования нерезкого изображения (input.jpg) в линейное цветовое пространство с помощью команды:

convert input.jpg -colorspace RGB output.tif

Затем с помощью ImageJ вы открываете файл output.tif. Затем в параметрах меню вы выбираете «изображение», затем «цвет», а затем «каналы». Затем в меню выберите «плагины», а затем «параллельную итеративную деконволюцию», а затем 2d интерактивную деконволюцию».

Затем вы получаете окно деконволюции, затем выбираете изображение, а «PSF» означает функцию точечного разброса, там вы выбираете файл изображения, который содержит функцию разброса точек. В качестве метода я выбрал «WPL», основанный на фильтре Винера, который обычно достаточно хорошо работает для изображений с низким уровнем шума. В параметрах WPL отметьте «normalize PSF», а для фильтра нижних частот измените значение на 0,2, по умолчанию оно равно 1, но более низкое значение лучше подходит для изображений с низким уровнем шума (если вы выберете большее значение, изображение будет менее резким). Другие параметры, граница может быть выбрана как рефлексивная, изменение размера может быть установлено на «следующую степень 2», выход может быть установлен на 32 бита, точность может быть установлена ​​​​на двойную. Я выбрал число максимального количества итераций равным 15,

Затем вы запускаете программу, нажав «развернуть». Затем вы получаете 32-битный файл изображения в качестве вывода. Обычно значения пикселей очень похожи на исходное изображение, но у вас могут быть некоторые пиксели, которые превышают максимальное значение для исходного формата изображения. Итак, в этом случае мы начали с 8-битных изображений, но в деконволюционном изображении у вас могут быть значения серого, превышающие 255, что затем приводит к тому, что все изображение становится слишком темным. Это нужно исправить, обрезав эти пиксели до 255, что вы можете сделать, выбрав в меню «процесс», а затем «Математика», а затем «Макс». Затем максимальное значение будет использоваться для обрезки значений серого, которые превышают это значение. Обратите внимание, что это будет сделано с изображением, на которое вы нажимали в последний раз. Вы также можете увидеть, какой файл является «текущим файлом», выбрав «

Затем, после того, как вы разделили 3 цветовых компонента, вы можете объединить их, выбрав в меню «изображение», затем «цвет», а затем «Объединить каналы». Затем вы получаете составное изображение, которое можно преобразовать в 8-битный RGB с помощью команды «Stack to RGB», которую вы найдете там.

Затем вы сохраняете это изображение, назовем его im.tif. Наконец, вы должны преобразовать это в sRGB, вы можете сделать это с помощью ImageMagick, используя команду:

convert im.tif -set colorspace RGB -colorspace sRGB output.tif

Остается вопрос, как получить функцию рассеяния точки. На практике, если бы вы сделали снимок, подобный обсуждаемому здесь, вы могли бы просто сфотографировать точечный источник, например, звезду с F/29, и использовать его в качестве функции рассеяния точки. В качестве альтернативы вы можете посмотреть на высококонтрастные границы и извлечь функцию разброса точек по тому, как значения серого изменяются от одного значения к другому на границе. Но тогда вы пытаетесь сделать изображение максимально резким.

В данном случае цель состояла в том, чтобы скомпилировать функции разброса точек для цветового канала на основе того, что вы ожидаете от него для F/29, выполнить деконволюцию изображения и посмотреть, выглядит ли результат достаточно хорошим. Я использовал Mathematica для выполнения некоторых расчетов, и эта продвинутая программа компьютерной алгебры довольно легко выполняет всевозможные манипуляции, включая усреднение по интервалу длины волны и интегрирование по областям пикселей, чтобы сделать PSF более реалистичным.

Но ImageJ также позволяет вам создать новое изображение, которое вы можете использовать в качестве функции разброса точек. Если вы нажмете «Файл», а затем «Создать», вы можете создать 32-битное изображение размером, скажем, 64 на 64, заполненное черным цветом. Затем вы можете запрограммировать формулу для значений серого, выбрав «процесс», затем «Математика», а затем «Макрос». Чтобы получить функцию распределения точек для этого случая, который включает здесь функцию Бесселя, вы можете использовать тот факт, что она хорошо описывается первыми несколькими членами разложения ряда. Страница MathWorld, на которую я ссылаюсь, дает вам расширения этого ряда, поэтому J 1 (x) 2 /x 2 с x = π rs /( λF ) можно заменить функцией формы A + B s 2 + C s 4. Это приближение станет недействительным, если s слишком велико. Теперь мы знаем, что PSF стремится к нулю, например, на расстоянии около 5 или 6 пикселей его можно установить равным нулю. Предполагая, что полином все еще мал при этих значениях, вы можете написать макрос как:

if(d<7) v = A + B  * pow(d,2) +  B * pow(d,4)

Затем вы создаете 3 изображения, скажем, для лямбда = 650 нм, 500 нм и 400 нм или любых других значений, которые, по вашему мнению, подходят для представления дифракции в 3 цветовых каналах. Затем вы можете выполнить усреднение по нескольким различным длинам волн, создав изображения для разных лямбда, а затем выбрав «процесс», затем «калькулятор изображений», и там вы выбираете «добавить». Затем вы можете добавить еще одно изображение к этому результату, и когда вы закончите добавление, вы можете разделить, чтобы получить среднее значение, выбрав «процесс», затем «математика», а затем «разделить».

Это удивительно. Интересно, сколько времени пройдет, пока камеры не добавят это в свой арсенал автоматической коррекции, и подобные вещи не будут применяться как само собой разумеющееся.
+10 (хотя на самом деле не могу +10) за добавление математики. Это здорово, что вы добавили его. Можете ли вы дать какую-либо цитату для этого. Я хочу попробовать это сам. Чем более подробная математика, тем лучше!
Это действительно удивительно. В каком софте ты это делал? Кажется, что это может быть невероятно полезно для макросъемки.
@mattdm Деконволюция требует значительной вычислительной мощности, но тогда некоторые алгоритмы, такие как деконволюция Ричардсона-Люси , могут быть легче реализованы на оборудовании, чем другие. Кроме того, программное обеспечение камеры, используемое для обработки необработанных файлов на их компьютерах, может включать в себя деконволюцию, специально оптимизированную для борьбы с фактическим размытием, которое вы получаете из-за расфокусировки и дифракции.
@CorruptedMyStack Я добавлю в ответ еще несколько деталей. Вы должны быть в состоянии сделать гораздо лучше, если у вас есть необработанный файл. Вы можете посмотреть размер сенсора и, исходя из этого, рассчитать размер пикселя. Но вы также можете пропустить вычисления и напрямую измерить функцию рассеяния точек, сфотографировав какой-нибудь точечный объект, а затем просто извлечь из него функцию рассеяния точек. В случае дифракции деконволюцию лучше всего выполнять с необработанными файлами, в отличие от других случаев, когда у вас теперь есть цветная окантовка, которую не нужно исправлять до проведения деконволюции.
@Whelkaholism Я использовал программу ImageJ и плагин для этой программы, чтобы выполнить деконволюцию. Я рассчитал функцию разброса точек с помощью Mathematica, но это также можно сделать с помощью бесплатного программного обеспечения. Постараюсь объяснить подробнее в ответе.
@CountIblis Похоже, это довольно впечатляющее программное обеспечение. Можете ли вы добавить к своему ответу конкретные шаги, которые вы предприняли, чтобы перейти от фотографии в вопросе к фотографии в вашем ответе, включая то, какой именно плагин вы использовали?
@CountIblis или может кто-нибудь еще отформатировать уравнение в латексе, отредактировав ответ?
глаза стекленеют Спасибо, но моя математика далеко не достаточно хороша, чтобы понять это :) Если бы у меня было больше времени, у меня возникло бы искушение попытаться написать что-то, во что вы просто подключаете переменные и JPEG, но, к сожалению, этого не произойдет. фр некоторое время.

Вы преодолели дифракционный предел . Световые лучи, проходящие через маленькое отверстие, расходятся и интерферируют друг с другом, и возникает узор — своего рода полосатость, где разные частоты/местоположение могут привести к тому, что отдельные лучи складываются или отрицают друг друга. Чем меньше становится открытие, тем больше становится это расхождение/интерференция. Этот паттерн называется диском Эйри. Когда диаметр пика диска Эйри становится больше, чем размер пикселя, и диски Эйри для каждого пикселя начинают сливаться, вы получаете мягкость — поэтому, чем больше количество пикселей вашего сенсора и чем меньше ваш сенсор, тем быстрее вы увидишь, как ты остановишься.

Вы, как правило, острее в «золотой середине». Где может быть «золотая середина» вашего оборудования, зависит от плотности/размера пикселей и дизайна объектива. С датчиками размера APS-C, которые, как я понимаю, вы используете по эталонному объективу 17-85, вы, вероятно, не захотите переходить на f/11 без действительно веской причины и готовности отказаться от некоторой резкости. Теоретические пределы дифракции, вероятно, будут находиться в диапазоне f/5,6–f/8. Вы также захотите узнать, где находится «золотое пятно» вашего объектива — многие объективы работают лучше при закрытой диафрагме на 1-2 ступени от широко открытой диафрагмы. Например, «лучший диапазон» объектива EF 50mm f/1.8 II находится в диапазоне f/4–5.6.

Я бы также сказал, что судить о резкости при 200-процентном увеличении — это просто просить, чтобы все ваши объективы выглядели как собачье мясо. Это не реалистичное увеличение с точки зрения расстояний просмотра, которое вы получили бы от типичного отпечатка, и это редкий объектив, который выдержит такое испытание, даже если он используется в его сладкой точке. Хватит подглядывать за пикселями. Начните смотреть на печать.

См. также: http://www.cambridgeincolour.com/tutorials/diffraction-photography.htm

Или, если вы оцениваете, как может выглядеть распечатка, то: увеличьте изображение так, чтобы оно отображалось на экране примерно того же размера, что и на распечатке, и смотрите на экран примерно с того же расстояния, с которого вы бы смотрели на распечатку. Распечатать. Это даст вам гораздо лучшее представление о том, как будет выглядеть конечный результат, хотя это и не идеальный метод. @CorruptedMyStack

Из-за дифракции. f/29 — это слишком много, чтобы ожидать резкого изображения. Попробуйте снять то же самое на f/8, и вы увидите разницу.