Comment corriger un éclairage inégal / dégradé sur une toile avec un fond blanc?


24

J'ai une photo d'un dessin au crayon réalisé sur papier, prise avec un flash hotshoe sur le reflex numérique et deux filtres polarisants ( technique de polarisation croisée pour la photographie sur toile).

Le problème est que lorsque vous vous rapprochez du dessin, l'éclairage devient inégal car l'objectif projette une ombre sur une partie de l'image. Cela crée un dégradé sur l'image qui est approximativement, mais pas tout à fait, linéaire.

Voici un exemple d'image; l'original mesure environ 3 cm de large.

Comment cela peut-il être modifié de sorte que l'arrière-plan soit uniformément blanc?

Image source avec un éclairage inégal

-Modifier-

Résultats numérisés ci-dessous, non corrigés et corrigés. Bien que cela semble assez prometteur au début, c'est malheureusement en pleine résolution ce que vous voyez ici (600 px de large); le scanner peut faire 300 dpi et le dessin mesure environ un pouce de large. C'est un peu moins par rapport aux 5000 px de la caméra.

En outre, le balayage non corrigé laisse entendre que le graphite réfléchit en effet une bonne partie de la lumière, par opposition à la technique de polarisation croisée.

Scan non corrigé Scan avec courbe corrigée


Y a-t-il une raison pour laquelle vous prenez une photo au lieu de la numériser?
Cole Johnson

Oui; la toile peut être plus grande que A4. Mais je vais comparer les résultats dans la soirée. Je suis un peu méfiant à l'égard de la réflexion qui pourrait se produire sur le graphite.
Simon A. Eugster

@ColeJohnson Scan ajouté ci-dessus.
Simon A. Eugster

Autre chose à essayer: obtenir une table lumineuse , ou simplement accrocher votre dessin et y faire briller une lumière vive de l'arrière, et le photographier avec la lumière qui le traverse (en laissant le papier lui-même agir comme un diffuseur). Bien sûr, cela ne fonctionnera pas avec des peintures opaques, ou s'il y a quelque chose de dessiné au verso, mais pour les images au crayon, au crayon, à l'encre ou à l'aquarelle sur une face, cela peut valoir la peine d'être essayé.
Ilmari Karonen

Réponses:


8

La méthode que j'ai utilisée moi-même est similaire à la vôtre , mais utilise le plug-in Resynthesizer (pour GIMP) ou Content-Aware Fill (pour Photoshop) pour reconstruire le dégradé:

  1. Créez une sélection qui couvre entièrement le dessin. Vous pouvez le faire à la main ou utiliser un filtrage passe-haut pour calculer un masque de sélection comme celui-ci:

    • Commencez par utiliser un filtre de détection de bord comme Différence de gaussiens sur (une copie de) votre numérisation pour extraire grossièrement le dessin:

      Étape 1.1: Extraire le dessin avec la différence des gaussiens

    • Si le résultat manque de contraste, utilisez l' outil Niveaux pour l'assombrir:

      Étape 1.2: ajuster les niveaux

    • Appliquez du flou gaussien :

      Étape 1.3: appliquer un flou gaussien

    • Utilisez l' outil Seuil pour obtenir un masque couvrant tout le dessin et utilisez Sélectionner par couleur pour le sélectionner:

      Étape 1.4: Utilisez l'outil de seuil pour obtenir le masque

  2. Une fois que vous avez une sélection couvrant le dessin, faites une copie du calque de numérisation d'origine et utilisez Heal Selection / Content-Aware Fill pour le remplir. Idéalement, votre calque copié devrait maintenant ressembler à l'image d'une feuille de papier vierge:

    Étape 2: Soignez la sélection pour reconstruire le papier vierge

  3. Réglez le mode du calque modifié sur Diviser, comme dans votre propre réponse. Si vous souhaitez conserver une partie de la texture et / ou de l'ombrage du papier, vous souhaiterez peut-être réduire légèrement l'opacité du calque et peut-être appliquer une petite quantité de flou:

    Étape 3: division par couche de papier vierge

    (L'image ci-dessus a le calque gaussien rempli flou de 10 pixels et l'opacité définie sur 95%.)

  4. Facultativement, après la fusion des calques, ajustez les niveaux pour définir le point noir (astuce: utilisez la vue d'histogramme logarithmique) et augmentez le contraste:

    Étape 4: ajuster les niveaux

(Ps. Cliquez sur les images en demi-taille pour les afficher en taille réelle.)

La bonne chose à propos de cette méthode est qu'elle peut fonctionner assez bien même pour des dégradés d'ombrage assez non linéaires. Bien sûr, ce n'est pas parfait - si le papier a, par exemple, une tache irrégulière dont la limite se trouve en partie sous le dessin, le remplissage sensible au contenu est peu susceptible de le reconstruire correctement. Pourtant, comme vu ci-dessus, cela donne souvent des résultats assez décents.


C'est très cool et en fait ce que je voulais faire en premier, mais je n'ai pas trouvé le Resynthesizer! Je vais essayer ça demain avec quelques dessins. Curieux de savoir où de plus grandes parties du dessin sont couvertes. Votre résultat est déjà superbe.
Simon A. Eugster

Il semble que je ne puisse pas enregistrer Heal Selection dans Gimp, malheureusement…
Simon A. Eugster

C'est étrange. Êtes-vous sous Windows ou Linux? Il est possible que Python ne soit pas disponible ou que GIMP ne le trouve pas pour une raison quelconque. Dans ce cas, Heal Selection peut ne pas fonctionner, mais le filtre de base > Map> Resynthesize (qui peut faire tout ce que Heal Selection peut faire, même si l'interface utilisateur peut ne pas être aussi pratique) devrait toujours être disponible.
Ilmari Karonen

Je suis sous Linux et j'ai dû compiler le plugin moi-même. Carte> Resynthèse est en effet disponible. Comment puis-je vérifier si Gimp trouve la version python requise? J'ai 2.7.5 et 3.3.2 installés.
Simon A. Eugster

Je ne suis pas vraiment sûr; J'utilise Ubuntu moi-même et je laisse juste APT s'occuper des choses. Le sous-menu Python-Fu apparaît-il pour vous? Sinon, vous devrez peut-être installer GIMP-Python (s'il est disponible séparément de GIMP lui-même) et / ou recompiler GIMP avec la prise en charge de Python activée. Là encore, je devine vraiment ici.
Ilmari Karonen

18

Edit: j'ai écrit un script Gimp qui fait les étapes ci-dessous, et un autre pour la réponse d'Ilmaris . Les deux scripts sont disponibles en téléchargement sur GitHub . La voie à suivre suggérée est celle-ci .


Je réponds à cette question ici parce que je cherche une solution depuis un certain temps et en ai trouvé une simple et fonctionnelle. Mettons-nous tout de suite au résultat:

  1. Créez un calque d'arrière-plan en copiant une bande verticale de l'arrière-plan uniquement et en l'étirant à la taille de l'image d'origine.

    Dans Gimp: sélectionnez run rectangle de haut en bas contenant un arrière-plan, collez-le Shift+Ctrl+Vdans une nouvelle image et agrandissez- Filter > Map > Tilele à la taille de l'image, exécutez un flou gaussien dessus, puis copiez-le dans l'image en tant que nouveau calque.

  2. Réglez le mode de calque sur Division .

  3. Réduisez l'opacité du calque comme vous le souhaitez, par exemple à 90%. Le garder à 100% est généralement un peu trop brillant.

Étapes de division

Ce que cela signifie, en substance, c'est que le calque d'arrière-plan définit la valeur RVB wde «blanc» sur chaque pixel. Le mode de calque de division étire ensuite la valeur sur l'image de [0,w]à [0,255](voir les modes de calque GIMP ) par pixel.

(Mauvais) Exemple utilisant des courbes et un gradient linéaire

Les premières tentatives ont toujours consisté à dupliquer le calque, à modifier la luminosité de sorte que la partie la plus sombre du bas soit correctement éclairée et à ajouter un masque de calque avec un dégradé linéaire pour éclaircir uniquement les régions les plus sombres. Plus le gradient est fort, pire il a l'air.

Tentative avec un dégradé linéaire

(Mieux) Exemple utilisant la division

La division donne de bien meilleurs résultats; l'éclairage est fixé de manière uniforme et il n'y a pas de zones brûlées, en particulier dans la partie gauche du dessin.

Utilisation de la division


Ou changez simplement le réglage des niveaux dans Photoshop
SaturnsEye

3
Pour des résultats encore meilleurs, en particulier dans le cas d'ombres non constantes / non linéaires dans les deux directions, il peut être utile de prendre une photo d'une feuille de papier blanche, d'appliquer un léger flou pour éliminer le bruit de l'appareil photo et d'utiliser cela comme une base de couche de réglage.
PlasmaHH

1
@SaturnsEye Essayez-le avec l'image d'entrée ci-dessus. Ne fonctionne pas;) Si le papier était d'un gris uniforme, comme 10%, alors oui, ce serait le moyen le plus simple.
Simon A. Eugster

@PlasmaHH Cela nécessiterait que j'utilise un trépied pour obtenir une distance constante, mais c'est une bonne solution, surtout pour les photographies fortement peintes. Le dos du papier est généralement blanc de toute façon, il pourrait donc être utilisé pour la couche de réglage. (Nous utilisons différents types de papier avec différentes nuances de gris / brun).
Simon A. Eugster

@ SimonA.Eugster: Si je devais faire ces choses plus d'une fois de temps en temps, j'utiliserais un trépied et une configuration d'éclairage récréatif pour des résultats consistants.
PlasmaHH

5

Cette réponse décrit l'approche fiable la plus rapide que je connaisse atm, basée sur la réponse d'Ilmari Kanoren . C'est semi-automatique; le masque automatique ne fonctionne pas pour les images dures comme celle ci-dessous car il n'y a pas de bords dans certaines parties du dessin.

Ce script Gimp automatise les étapes 3 et 4 (notez que Resynthesizer est requis), donc le flux de travail est juste: Créer une sélection, exécuter le script. Il faut 6 secondes au script pour terminer une image de 15 MP sur mon ordinateur portable de 3 ans.

entrez la description de l'image ici

Étape 1 (facultatif): ajustez les courbes pour le noir profond

Point noir

Étape 2: sélectionnez l'objet

Dans Gimp, le masque rapide Shift+Qest un moyen rapide. Utilisez le crayon Net peignez l'objet en blanc, appuyez à Shift+Qnouveau pour convertir le masque en sélection.

Objet sélectionné

Étape 3: recréer l'arrière-plan

  • Dupliquer l'image et l'échelle à 400 × 400 px
  • Utilisez Heal Selection ou Content-aware fill pour soigner l'objet (seul l'arrière-plan reste)
  • Utilisez le flou gaussien, 40 × 40 px
  • Redimensionnez l'image à sa taille d'origine et copiez-la en tant que calque sur l'image d'origine

Contexte

Étape 4: Mode division

Réglez le mode de calque sur Division et réduisez un peu l'opacité, si vous le souhaitez.

Image fixe


1

C'est le forum de la photographie, je vais donc adopter une approche photographique. Bien sûr, pour un blanc parfait, vous avez probablement encore besoin de quelques ajustements de post-production.

Au lieu d'utiliser un flash, vous pouvez essayer d'utiliser la lumière naturelle. Évitez la lumière directe du soleil, ne restez pas trop près de la fenêtre non plus, mais comme à 2 mètres de la fenêtre. Cela permet de réduire la différence de lumière entre la partie la plus proche et la plus éloignée du dessin. (Mais comme il s'agit d'une petite image, la distance n'est peut-être pas si importante.)

Vous pouvez pointer un trépied vers le bas et poser votre dessin sur le sol.

Ou si vous n'avez pas de trépied, vous pouvez organiser une couverture de livre ou une boîte de céréales pour maintenir l'image verticalement sur une table et placer votre appareil photo de manière stable sur la même table. (Placez une feuille de papier blanche derrière votre dessin pour éviter de voir les images d'arrière-plan ou les textures.)

La technique du polariseur que vous mentionnez est dans le cas où vous avez le dessin derrière une vitre et lorsque vous avez des objets lumineux ou des reflets. Mais si votre source de lumière est dans un angle oblique, vous n'avez probablement pas besoin d'utiliser un filtre.


Je connais l'éclairage ambiant. Cela produirait probablement de meilleurs résultats en ce qui concerne le gradient, bien qu'à cette distance l'objectif commencerait probablement déjà à projeter une ombre sur le papier. Le polariseur est en fait nécessaire ici car la surface du papier n'est pas uniforme, et le graphite fait étonnamment bien pour réfléchir la lumière plus sombre que vous voulez que la zone soit;) De plus, appuyer un peu plus fort avec le crayon peut créer des indentations où la lumière ambiante peut se refléter à nouveau .
Simon A. Eugster
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.