Почему этот портрет не сделан с резким f / 29? - Фотопедия
25 голосов
/ 21 июля 2015

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

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

РЕДАКТИРОВАТЬ: У некоторых людей есть вопросы о DOF на этом снимке, поэтому вот некоторая информация, которую можно получить из любого онлайн-калькулятора DOF. Моя оценка 82.8 см была из приложения, а 1.2M была из информации EXIF, используя этот онлайн-инструмент , DOF на 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,2M. Так что для того, чтобы этот снимок был не в фокусе, мне нужно было бы находиться примерно в полуметре от камеры, что я не помню. Возможно, размытие, наблюдаемое на этой фотографии, не из-за того, что объект не сфокусирован.

portrait F/29 ISO100 1/250

Ответы [ 3 ]

51 голосов
/ 21 июля 2015

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

Вы обычно острее в "счастливой среде". Место «счастливой среды» вашего механизма может меняться в зависимости от плотности / размера пикселей и конструкции объектива. С датчиками размера 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

48 голосов
/ 23 июля 2015

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

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

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

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

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

Sharpened picture

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

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

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

convert input.jpg -colorspace RGB output.tif

Затем с ImageJ вы открываете файл output.tif. Затем в опциях меню вы выбираете «изображение», затем «цвет», а затем «Spit Channels». Затем в меню выберите «Плагины», а затем «Параллельная итеративная деконволюция», а затем «2-я Интерактивная деконволюция».

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

Затем вы запускаете программу, нажав «deconvolve». Затем вы получите 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, заполненное черным. Затем вы можете запрограммировать формулу для значений серого, выбрав «process», затем «Math», а затем «Macro». Чтобы получить функцию разброса точек для этого случая, которая включает здесь функцию Бесселя, вы можете использовать тот факт, что она хорошо описана в первых нескольких терминах разложения в ряд. Страница 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 цветовых каналах. Затем вы можете выполнить усреднение по нескольким разным длинам волн, создавая изображения для разных лямбд, затем выбирая «процесс», затем «калькулятор изображений», и там вы выбираете «добавить». Затем вы можете добавить другое изображение к этому результату, и когда вы закончите добавление, вы можете разделить, чтобы получить среднее значение, выбрав «процесс», затем «математика» и затем «разделить».

15 голосов
/ 21 июля 2015

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

...