À propos de la partie traitement numérique, vous devez éviter d'utiliser les méthodes de netteté générales comme le masque flou, car ces méthodes ne feront qu'augmenter le contraste local - rendant les détails plus visibles mais vous ne récupérerez pas les détails qui sont devenus invisibles. Il est préférable d'utiliser des méthodes basées sur une inversion réelle du flou dû à une mise au point imparfaite, et pour cela, vous devez connaître la fonction d'étalement des points (ainsi, dans la partie de l'image qui n'est pas mise au point, un seul point apparaîtra pour être un petit disque avec un certain profil de luminosité, c'est la fonction dite d'étalement de points).
Vous pouvez calculer la fonction d'étalement des points en zoomant sur les zones à contraste élevé de l'image. Si vous savez qu'il existe une arête vive à travers laquelle la luminosité change dans une certaine mesure, vous pouvez facilement calculer quelle est la fonction d'étalement des points qui donnerait le profil que vous voyez dans l'image.
On obtient une approximation en supposant que la fonction d'étalement de point est un disque uniforme de rayon R . Si vous zoomez sur un bord net, la courbure deviendra très petite dans l'image agrandie, vous pouvez donc supposer que vous avez une ligne droite, d'un côté la luminosité est v1 de l'autre côté de la ligne, ce sera v2 . La luminosité à une distance d de la ligne v (d) dans l'image sera une fonction lisse en raison de la netteté qui tend à v1 d'un côté et v2 de l'autre côté. Près de d = 0, la fonction g (d) = [v (d) - v1] / [2 (v2 - v1)] se comporte comme suit:
g(d) = 1/4 - d/(pi R) + d^3/(6 pi R^3) +...
Ainsi, en faisant un ajustement linéaire de la fonction g (d) - 1/4 en termes de coordonnées x et y de l'image près de la ligne, vous obtiendrez un résultat de la forme:
g(x,y) = A + b x + c y
puis il s'ensuit que:
1/(pi R) = sqrt[b^2 + c^2]
Ainsi, la fonction d'étalement des points peut être calculée avec un certain effort à partir de l'image, si vous n'êtes pas trop mauvais en mathématiques.
Ensuite, si vous avez calculé la fonction d'étalement des points, inverser le flou de défocalisation est un jeu d'enfant en utilisant des algorithmes tels que la déconvolution de Wiener ou la déconvolution de Richardson – Lucy . Ces algorithmes sont généralement inclus dans les logiciels de traitement d'image, mais vous devez les exécuter en utilisant la fonction d'étalement de points réelle qui s'applique à votre image, et non un flou gaussien standard. Par exemple, ce plugin ImageJ possède divers algorithmes de déconvolution qui vous obligent à spécifier la fonction d'étalement des points. Et ImageJ peut être obtenu ici .
Je dois ajouter ici que cela doit être fait dans un espace colorimétrique linéaire. Ainsi, vous devez d'abord vous convertir en RVB linéaire ou en espace colorimétrique XYZ, effectuer l'opération de netteté là-bas, puis reconvertir en sRGB.