Как можно програмно скомпенсировать недостаток информации?
Можно склеить бутерброд из нескольких снимков с открытой диафрагмой, чтобы получить аналогичную грип.
А при чём тут грип, если речь идёт про дифракцию источника света? Хотя это должна быть ну очень сильно закрытая диафрагма, чтобы проявилось вплоть до порчи снимка.
>Как можно програмно скомпенсировать недостаток информации?
Думаю это не недостаток. Мои умозаключения (поправь меня):
1. Дифракция приводит к тому, что изображение, что должно было попасть на пиксель (x,y) попадает еще и на (x+-1,y+-1) (распостранение дальше, чем на один пиксель учитывать не будем).
2. Как следствие вместо a(x,y) получается b(x,y) = a(x,y) + p*(a[x-1,y] + a[x+1,y] + a[x,y-1] + a[x,y+1]) + q*(a(x-1,y-1) + a(x+1,y-1) + a(x-1,y+1) + a(x+1,y+1)). p и q можно вычислить.
Это невозможно. Дифракцию можно представить как свертку изображения с функцией Эйри. Операция необратима. Существуют т.н. методы «развертки», но все они неизбежно сопровождаются потерей информации. Например, разрешения. Т.е., скажем, если полуширина функции Эйри 5 пикселей, то по обеим осям вам придется как минимум в 10 раз уменьшить разрешение для восстановления.
Да, для этого можно использовать те же методы, что используются для восстановления размытого гауссианой изображения. Только полуширина гауссовой функции, применяемой для «развертки», должна быть в несколько раз больше полуширины главного максимума функции Эйри.
Но я говорил не про полное проявление дифракции, а про упрощенный случай: берем только центральный максимум (отбросим остальные т.к. они слабее) и только те размеры диафрагмы, при которых этот максимум не задевает точки дальше соседей (типа (x-2,y), (x-3,y) и т.п.). Мне кажется, что в этом случае найти решение возможно (по крайней мере с определнной точностью).
Но привязать ее к EXIF фотографии - а именно модели камеры и кол-ву мегапикселей - это интересно. Такая себе кнопка «сделать п**дато» - без необходимости задания доп. параметров. Хочу попробовать такое сделать.
Вообще причина этого топика - тот факт, что в моей 50D по расчетам дифракция уже должна искажать картинку при диафрагме > 7.2.
Ага. Были уже публикации по этой теме. И с фокуса потерянного, и со смаза возвращали почти целую картинку. Какие-то зубодробительные статистические алгоритмы. Правда, обещали к этим годам уже в бытовой технике, но пока что-то на рынке не видно :)
Слушайте, а что у вас за фотоаппарат, если не секрет? У фотоаппарата с 35-мм фокусным расстоянием объектива при диафрагме диаметром 1мм полуширина первого дифракционного минимума 17мкм. Но диафрагмы-то обычно так сильно не закрываются...
>Слушайте, а что у вас за фотоаппарат, если не секрет? У фотоаппарата с 35-мм фокусным расстоянием объектива при диафрагме диаметром 1мм полуширина первого дифракционного минимума 17мкм.
Canon EOS 50D. 1.6 кроп, 15Мп. 7.2 взял с чьего-то жж - сейчас не вспомню с какого. Расчеты не проверял.
Лучший способ - не делать таких маленьких диафрагм. Вам что, мегаглубина кадра нужна, или вы ядерные взрывы снимаете?
А как восстановить, я уже говорил. Почитайте, например, это. Да и вообще погуглите на предмет слов «deconvolution» и «развертка» (первое слово лучше, т.к. более однозначно).
>так как при этом восстановить картинку-то в общем случае?
Думаю, если бы я мог ответить на этот вопрос, то в новостях уже не про тех ребят из Штатов писали бы, а про меня :D
А в общем случае - ну, например, мы можем «плавать» в многомерном пространстве исправления характеристик объектива оптимизируясь по критерию контрастности переходов.
Он, зараза, хитрый очень. После /2,8-4 становится гораздо хуже, чем на открытой и полуприкрытой. Про 1,2 - это, конечно, шутка была. А если отвлечься от разрешения как такового, то, таки да - на полностью открытой у него получается самая красивая картинка.
Неужели там настолько кривая оптика, что параксиальные ее части страдают от аберраций, в то время как периферийные - нет? Прямо нарушение законов физики какое-то...