Enluminures médiévales en coloriage : comment j’extrais les traits avec OpenCV

Je suis en train de préparer un carnet de coloriages adultes autour des marginalia médiévaux — ces petits personnages absurdes qui peuplent les marges des manuscrits du Moyen Âge : lapins décapiteurs, créatures hybrides, chevaliers-poissons. Des images qui ont entre 600 et 800 ans, et qui sont d’un humour complètement inattendu.

Pour en faire des pages à colorier, il faut extraire les contours — transformer une enluminure pleine de couleurs, d’or et de texture de parchemin en trait noir sur fond blanc. C’est ce qu’on appelle le line-art.

J’ai fait des tests sur 5 images représentatives pour trouver la meilleure méthode. Voilà ce que j’ai découvert.

Les 5 images de test

J’ai choisi les images pour couvrir les cas difficiles : fond doré, texte gothique en bordure, personnage sur fond uni, scène très chargée.

  • MM001 — Lapin décapiteur (British Library, v. 1300) : personnages en action, fond de parchemin relativement clair
  • MM004 — Smithfield Decretals : texte gothique dense de chaque côté, personnage central
  • MM007 — Grotesque Luttrell Psalter : silhouette sur fond presque uni, cas idéal
  • MM014 — Bréviaire Renaud de Bar : scène complexe, fond texturé et doré, texte en haut
  • MM018 — Jean de Berry Fol12r : très chargé — bordures, lettres ornées, créatures, texte gothique sur tout le pourtour

Ce que j’ai testé

Méthode 1 : OpenCV seuil global (Canny, threshold=128)

C’est la méthode la plus simple : on passe l’image en niveaux de gris, on lisse légèrement, et on demande à OpenCV de trouver les contours par contraste de couleur. Tout ce qui est plus sombre que le seuil devient un trait noir, le reste devient blanc.

Méthode 2 : OpenCV seuil adaptatif

Le seuil s’adapte localement selon la zone — en théorie mieux pour les fonds inégaux (lumière variable, parchemin tacheté).

Les résultats

La surprise : la méthode la plus simple est la meilleure.

Sur 4 images sur 5, OpenCV standard (threshold=128) donne des résultats directement utilisables.

Grotesque du Luttrell Psalter - line-art OpenCV
MM007 — Grotesque, Luttrell Psalter f27r (v. 1320-1340). ★★★★★ Fond complètement blanc, silhouette propre, trait élégant. Le meilleur résultat de la série.
Lapin décapiteur - line-art OpenCV
MM001 — Lapin décapiteur, British Library (v. 1300). ★★★★★ Traits nets, fond blanc propre, silhouettes bien fermées. Prêt à imprimer.
Smithfield Decretals - line-art OpenCV
MM004 — Smithfield Decretals f30v (v. 1340). ★★★★☆ Le texte gothique et les bordures ressortent lisiblement — c’est un bonus, ça fait partie du charme.
Chevalier-poisson Bréviaire Renaud de Bar - line-art OpenCV
MM014 — Bréviaire de Renaud de Bar, chevalier-poisson (v. 1302-1303). ★★★★☆ Scène lisible, quelques petits fragments flottants (taches du parchemin), négligeables.
Jean de Berry Fol12r grotesque - line-art OpenCV
MM018 — Grandes Heures de Jean de Berry, Fol.12r (v. 1409). ★★★☆☆ Correct — l’image la plus chargée de la série. Contours majeurs propres, mais quelques zones vides dans les aplats de couleur.

L’adaptatif est contre-productif ici. Il amplifie la texture du parchemin en grain visuel — le fond devient grisâtre et bruité au lieu de blanc propre. Sur MM007, qui a pourtant le fond le plus uni, l’adaptatif est pire que le standard.

Pourquoi ça marche si bien

La raison est simple, et je ne m’y attendais pas autant : les enluminuristes du Moyen Âge travaillaient à l’encre noire sur parchemin clair. Le trait existe déjà dans l’image — OpenCV n’a qu’à l’extraire, pas à le recréer.

C’est différent d’une peinture à l’huile (Van Gogh, Renoir) où il n’y a que de la couleur et où il faut déduire les contours. Là, ils sont déjà là, depuis 700 ans.

La seule limite : les zones en aplat de couleur sans contour d’encre (certains fonds de robes, certains ciels) restent vides dans le coloriage. C’est acceptable — c’est même une caractéristique qui donne du caractère : le coloriage a des zones pleines et des zones à remplir librement.

Ce que je vais utiliser pour le carnet

Pour les 20 enluminures du carnet Marginalia médiévaux : OpenCV standard, threshold=128. C’est rapide (traitement instantané, pas d’IA, pas de GPU), local, et le résultat est très propre.

Le seul réglage à surveiller : sur les images où les aplats vides sont trop larges, tester threshold=110 — ça capture légèrement plus de détails dans les zones de demi-teintes.

Et les autres méthodes IA ?

J’ai aussi préparé des tests pour des méthodes plus sophistiquées (controlnet_aux, ComfyUI en mode img2img) — mais ils nécessitent une installation plus lourde (PyTorch, GPU). Je les ferai dans une prochaine session pour comparer sur les images où OpenCV montre ses limites.

Pour d’autres types de coloriages que je prépare — peintures impressionnistes, illustrations Art nouveau, photos — ces méthodes IA seront probablement nécessaires. Le choix de méthode dépend vraiment du type de source.

Conclusion

Parfois la solution la plus simple est la bonne. Pour des enluminures médiévales, pas besoin d’IA ni de GPU : un script Python de 50 lignes avec OpenCV suffit, parce que le travail des artistes du XIVe siècle est déjà là dans l’image. Il n’y a plus qu’à le révéler.

Le carnet Marginalia médiévaux est en cours de fabrication — 20 grotesques, drolleries et créatures absurdes des marges de manuscrits, transformés en pages à colorier.

Épingle Pinterest du coloriage
Épingle à enregistrer sur Pinterest

Vous pouvez partager

Epingle Pinterest de ce coloriage

Si ce coloriage vous a plu, enregistrez-le sur Pinterest : d’autres personnes le trouveront et viendront l’imprimer ici.

Enregistrer sur Pinterest

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *