Щодо частини цифрової обробки, вам слід уникати використання методів різкості загального призначення, таких як нерізка маска, оскільки ці методи лише посилять локальний контраст - роблячи деталі більш видимими, але ви не отримаєте деталі, які стали невидимими. Краще використовувати методи, що базуються на фактичному звороті розмиття через недосконале фокусування, і для цього потрібно знати функцію розтікання точки (так, у частині зображення, яка не знаходиться у фокусі, з’явиться одна точка бути невеликим диском з деяким профілем яскравості, це так звана функція розведення точки).
Ви можете обчислити функцію розвороту точок, збільшуючи масштаб зображення на високій контрастності зображення. Якщо ви знаєте, що є гострий край, поперек якого яскравість змінюється на якусь величину, ви можете легко порахувати, яка функція розподілу точок, що дасть профіль, який ви бачите на зображенні.
Грубе наближення виходить, якщо припустити , що функція розсіювання точки є однорідним диском радіуса R . Якщо ви збільшите масштаб до якогось гострого краю, то кривизна стане дуже маленькою на збільшенному малюнку, так що ви можете припустити, що у вас пряма лінія, з одного боку яскравість v1, а з іншого боку лінії вона буде v2 . Яскравість, відстань d від лінії v (d) на малюнку, буде гладкою функцією через нерізкості, яка має тенденцію до v1 з одного боку та v2 з іншого боку. Близько d = 0, функція g (d) = [v (d) - v1] / [2 (v2 - v1)] поводиться так:
g(d) = 1/4 - d/(pi R) + d^3/(6 pi R^3) +...
Отже, зробивши лінійне прилягання функції g (d) - 1/4 у відношенні координат x і y малюнка біля лінії, ви отримаєте результат форми:
g(x,y) = A + b x + c y
а потім випливає, що:
1/(pi R) = sqrt[b^2 + c^2]
Отже, функцію розвороту точок можна обчислити за певних зусиль із малюнка, якщо ви не дуже погані в математиці.
Тоді, якщо ви обчислили функцію розвороту точок, інвертування розмивання розфокусування - це шматок пирога, використовуючи такі алгоритми, як деконволюція Вінера або деконволюція Річардсона – Люсі . Такі алгоритми зазвичай включаються в програмне забезпечення для обробки зображень, але слід запускати їх, використовуючи фактичну функцію розтікання точки, яка стосується вашого зображення, а не деяку стандартну розмитість Гаусса. Наприклад, цей плагін ImageJ має різні алгоритми деконволюції, які вимагають вказати функцію поширення точки. І ImageJ можна отримати тут .
Я повинен додати тут, що це слід робити в лінійному кольоровому просторі. Отже, спочатку потрібно перетворитись на лінійний RGB або в кольоровий простір XYZ, виконати там операцію заточення, а потім перетворити назад на sRGB.