Edip (Easy Digital Imaging Processing), un programme de traitement d'image pour Linux

30
17
déc.
2015
Graphisme/photo

Edip (Easy Digital Imaging Processing) sur open-source-projects.net est un logiciel de traitement d'images orienté effets et filtres mais il peut faire beaucoup plus.

Edip est basé sur la bibliothèque opencv-3.0.0 et utilise pour interface humain machine Gtkmm-3.

Edip a été écrit en C++ et utilise le concept MVC (Model View Controller).

  • Model: une bibliothèque statique nommée libedip que vous pouvez réutiliser et modifier selon les termes de la license GPLv3 ;
  • View: la bibliothèque de widgets (contraction de Windows Gadgets) pour l'IHM ou GUI ;
  • Controller: une classe C++ faisant le lien entre le modèle et la vue et assurant le contrôle du programme.

Edip dispose d'une documentation expliquant les techniques de traitement d'images implémentées dans libedip donc dans Edip en anglais au format HTML consultable en ligne ou à télécharger au format zip.

Interface de Edip:

Copie d'écran

Photo de deux personnes passées par l'effet Pencil Sketch suite à une préparation composée de combinaisons d'effets et Denoising appliquées après pour obtenir ce résultat grâce aux composants d'Edip.

Prise en charge des formats d'image:

  • *.bmp, *.dib (bitmap image file) ;
  • *.jpg, *.jpeg, *.jpe (Join Photographic Expert Group) ;
  • *.png (Portable Network Graphics) ;
  • *.tiff, *.tif (Tag(ged) Image File (Format)) ;
  • *.ras, *.sr (Sun Raster) ;
  • *.pbm, *.pgm, *.ppm (Portable Image Format) ;
  • *.webp.

Fonctions basiques d'édition d'image:

  • Rotation de 90° vers la droite et la gauche ;
  • Zoom, ayant pour spécificité de pouvoir placer le point sur lequel on veut zoomer ;
  • Miroir, copiant une partie de l'image vers l'opposé ;
  • Flip ;
  • Undo-Redo.

Plus de 30 effets (filtres) à appliquer tels quels sur votre image :

  • non-photo-réaliste ;
  • intensité de lumière et de couleurs ;
  • recoloration ;
  • aiguisement et floutage ;
  • érodage et dilatation ;
  • détection de contours ayant un rendu analogue à un dessin ;
  • Emboss avec plusieurs opérateurs opencv différents ;
  • pour obtenir des images binaires (images uniquement noir et blanc).

Mise en ton de couleurs :

  • Couleurs Gris, Rouge, Vert, Bleu, Jaune, Rose et Turquoise ;
  • Selon différents algorithmes
    • la moyenne des canaux de couleur de chaque pixel ;
    • la valeur maximale des canaux de couleur de chaque pixel ;
    • la valeur minimale des canaux de couleur de chaque pixel ;
    • la valeur du canal rouge de chaque pixel ;
    • la valeur du canal vert de chaque pixel ;
    • la valeur du canal bleu de chaque pixel.

Réglages:

  • d'intensité
    • du rouge ;
    • du vert ;
    • du bleu ;
    • globale ;
  • LHSB (Lightness, Hue, Saturation, Brightness).
    • clarté de l'image ;
    • nuances ;
    • vivacité des couleurs ;
    • luminosité ;

Note: Je n'ai pas pu implémenter le changement de réglage avec prévisualisation immédiate, dommage !

Dessiner des formes sur l'image et insérer du texte:

  • Suite de lignes ou ligne unique avec la fonction spéciale de joindre le premier et le dernier trait afin de composer un polygone ;
  • Rectangles ;
  • Cercles ;
  • Polygones
    • Polygone régulier convexe, avec le nombre de cotés configuré ;
    • Polygone barré, avec le nombre de cotés configuré ;
  • Étoiles
    • Étoile simple, avec le nombre de branches configuré ;
    • Étoile ressemblant a une fleur ou une feuille, avec le nombre de branches configuré ;
    • Étoile barré, avec le nombre de branches configuré ;
    • Étoile dont les branches sont des lignes, avec le nombre de branches configuré ;
  • Texte
    • Plusieurs polices disponibles, taille et mise en italique configurable.

Des kernels configurables selon le type :

  • Sharpen ;
  • Find Edges ;
  • Emboss ;
  • Mean ;
  • Gaussian ;
  • Kirsch.

Des effets (filtres) morphologiques configurables:

  • Erode (érosion) ;
  • Dilate (dilatation) ;
  • Open (ouverture);
  • Close (fermeture) ;
  • Tophat ;
  • Blackhat.

L'opérateur Canny est configurable à souhait avec les couleurs de votre choix.

  • Multiplication de couleurs par un facteur, ainsi que le canal alpha ;
  • Mise de votre image dans une couleur quelconque de votre choix.

Différents algorithmes de mixage de deux images faisant ressortir une image ou l'autre selon un facteur ou pas selon l'algorithme:

  • Blend (mélange en jouant sur la transparence) ;
  • Screen (superposition des deux images inversées) ;
  • Darker (pixels les plus foncés) ;
  • Lighter (pixels les plus clairs) ;
  • Add (additif) ;
  • Add modulo (additif modulo) ;
  • Subtract (soustractif) ;
  • Subtract modulo (soustractif modulo).
  • # pourquoi ?

    Posté par . Évalué à 7.

    Pourquoi avoir créé ce logiciel alors qu'il y en a déjà d'autres ?

    Qu'est ce qu'il apporte de plus que GIMP ? Ou qu'est ce qu'il va apporter de plus ?

    • [^] # Re: pourquoi ?

      Posté par . Évalué à 8.

      Pour ma part, j'y vois un intérêt, à ma connaissance, OpenCV n'a pas un front end graphique très pratique (il faut plutôt passer par exemple par Qt), cette solution peut être vue comme une alternative.
      Il y a parfois juste besoin d'une IHM simple dédiée pour des analyses d'images adaptées à un domaine donné (par exemple, comptez des impuretés dans une image venant d'un microscope).

    • [^] # Re: pourquoi ?

      Posté par (page perso) . Évalué à 10.

      Parce que la diversité c'est la richesse !

    • [^] # Amusez vous en transformant des images avec Edip.

      Posté par (page perso) . Évalué à 4.

      Personnellement j'ai vécu une super expérience avec opencv-3.0.0 et j'ai créer un programme pour le plaisir.

      Il faut que j'admette que les effets des filtres sur les images varies en fonction de celle-ci.

      Surtout essayez des combinaisons, c'est la clefs de Edip pour arriver a un résultat satisfaisant.

      Avec mirroring: prenez une photo d'une personne (un visage) ou d'un objet se trouvant au milieux de l'image.
      Miroitez horizontalement (essayez les deux côtés UNDO-REDO est fait pour ça).
      Puis quand vous avez votre personnage symétrique, grâce a une copie d'un coté sur l'autre façon miroir (la face copié s'inverse), appliquez un effets Wave, une fois ou plusieurs (il suffit d'appuyer).
      Travailler sur l'intensité (j'ai utilisé Invert Intesity).
      Puis vous pouvez travailler la couleur.
      Utilisez un filtre non-photo-réaliste j'ai utiliser Details Enhance.
      J'ai rajouter du Sharpen: ca marque les traits du personnage (sinon le filtre Stroke Edges aussi mais différemment).

      Puis denoisez…
      Edip
      Vous le reconnaissez ? .

      Essayez de devinez qui c'est.
      Vous savez ? Trouver l'image originale …???

      Je la donnerai en réponse au EdipMorphQuizzzzz.

      Car c'est en combinant des opérateurs de traitement de signal que l'on obtient ces effets tous prêt, qui pète pas la baraque je l'avoue selon les images.

      Sinon avez vous jetez un œil au code ?

      Merci pour vos commentaires et amusez vous avec Edip.

      PS: j'utilise une seule fonctionnalités de GIMP: détecter le code hexadécimale d'une couleur. Mais GIMP n'a rien avoir avec Edip seulement la GUI.

  • # Jolie interface !

    Posté par . Évalué à 7.

    À première vue, vous avez l'air d'avoir travaillé l'ergonomie, cela peut se révéler être un réel avantage !

  • # j'ai trouvé !

    Posté par . Évalué à 3.

    grâce a la cravate je dirais

    francois !!

  • # Erreur de compilation

    Posté par . Évalué à -1.

    Salut,

    Je me suis dit chouette, je vais essayer ; j'ai une erreur de compilation:
    algorithm.hpp:28:28: fatal error: opencv2/core.hpp: Aucun fichier ou dossier de ce type

    (je précise que j'ai bien fait ./configure qui était content, et que j'ai bien libopencv-core-dev installé en version 2.4.9)

    • [^] # make opencv3 && sudo make install-opencv3

      Posté par (page perso) . Évalué à 1. Dernière modification le 20/12/15 à 15:09.

      Désolé, mais tu n'a pas dû lire la page de description de Edip sur www.open-source-projects.net mais j'ai oublier de le préciser Edip dépends de opencv-3.0.0 compris dans le sources:
      Pourtant c'est dit a la fin du script configure et tous les target sont listés a la fin du script .

      NOTE: Cmake est requis mais tu le remarquera.

      $ ./configure 
      $ make opencv3               # Cmake opencv-3.0.0
      $ sudo make install-opencv3  # Build and install opencv-3.0.0
      $ make                       # Make all binaries.
      $ sudo make install          # Install Edip.

      Parce que en faite opencv2 est précompilé avec GTK+2 quand il vient des dépôts donc incompatible avec GTK+3.
      C'est expliqué a la fin du script configure.

      J'aurai peut être dû automatiser la compilation et l'installation de opencv-3.0.0 dans le target make.

      La seule gène que peut occasionner l'installation de opencv-3.0.0 c'est si tu désire développer un logiciel avec GTK+2 et encore je ne sais pas si jamais GTK+3 n'est pas installer ce que ça donne, car opencv-3.0.0 auto-détecte la version de GTK et même si il ne suffit pas de modifier le fichier *.pc (pkg-config).

      PS: du coup je ne peut pas faire de *.deb

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.