デジタル処理部分については、アンシャープマスクなどの汎用シャープニングメソッドの使用を避ける必要があります。これらのメソッドはローカルコントラストを高めるだけです。ディテールをより見やすくしますが、見えなくなったディテールは取り戻しません。不完全な焦点による実際のぼかしの反転に基づく方法を使用することをお勧めします。そのためには、点広がり関数を知る必要があります(したがって、焦点の合っていない画像の部分では、単一の点が表示されます何らかの輝度プロファイルを持つ小さなディスクであるために、これはいわゆる点広がり関数です)。
画像のコントラストの高い領域にズームインすることにより、点広がり関数を計算できます。明るさがある程度変化する鋭いエッジがあることがわかっている場合は、画像に表示されるプロファイルを生成するポイントスプレッド関数を簡単に計算できます。
大まかな近似は、点広がり関数が半径Rの均一なディスクであると仮定することにより得られます。シャープなエッジにズームインすると、拡大された画像の曲率が非常に小さくなるため、直線があると仮定できます。一方の側の明るさはv1で、もう一方の側の明るさはv2になります。画像の線v(d)から距離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)の線形近似を行の近くの画像のx座標とy座標で1/4にすることにより、次の形式の結果が得られます。
g(x,y) = A + b x + c y
そして、それはそれに従います:
1/(pi R) = sqrt[b^2 + c^2]
そのため、数学が苦手でない場合は、画像からある程度の労力をかけて点広がり関数を計算できます。
次に、点広がり関数を計算した場合、焦点ぼけの反転は、WienerデコンボリューションやRichardson–Lucyデコンボリューションなどのアルゴリズムを使用した簡単なことです。通常、このようなアルゴリズムは画像処理ソフトウェアに含まれていますが、標準のガウスぼかしではなく、画像に適用される実際の点広がり関数を使用して実行する必要があります。たとえば、このImageJプラグインには、ポイントスプレッド関数を指定する必要があるさまざまなデコンボリューションアルゴリズムがあります。そして、ImageJはここで入手できます。
ここで、これを線形色空間で行う必要があることを追加します。そのため、最初にリニアRGBまたはXYZ色空間に変換し、そこでシャープニング操作を行ってから、sRGBに変換し直す必要があります。