> Divers > Analyse des images : biOps > Opérations simples sur les images
Opérations simples sur les images
Correction gamma :
- imgGamma(im, 1.5) : effectue une correction gamma de 1 / 1.5
- avec la correction gamma indiquée, chaque valeur v de couleur R, G, B est modifiée selon la formule : 255 * (v / 255) ^ (1 / 1.5).
- plus la valeur donnée est supérieure à 1, plus l'image est éclaircie, plus la valeur donnée est inférieure à 1, plus l'image est assombrie.
Négatif d'une image :
imgNegative(im) : renvoie une image en négatif de l'image donnée.
Histogramme d'une image :
- imgHistogram(im) : trace et renvoie un histogramme des intensités de couleurs, en poolant les 3 couleurs (fait en fait un simple appel à hist sur les couleurs).
- imgHistogram(im, main = "histogramme", col = "red", breaks = 100) : adapte l'histogramme en utilisant les paramètres (les mêmes que ceux de hist).
Normalisation d'une image : consiste à étendre la gamme de variation de façon à avoir 0 comme valeur minimale et 255 comme valeur maximale, grâce à une transformation linéaire des composantes des pixels :
imgNormalize(im)
C'est la même transformation linéaire qui est appliquée à toutes les couleurs (pour image en RGB).
Seuillage d'une image : consiste à remplacer toutes les valeurs supérieures au seuil par 255, et les autres par 0 :
imgThreshold(im, 120) : renvoie une image dont tous les pixels et les composantes sont 255 si image de départ avait une valeur supérieure au seuil et 0 sinon.
Manipulation de l'intensité d'une image :
- imgIncreaseIntensity(im, 0.2) : accroît l'intensité de l'image de 20%.
- imgDecreaseIntensity(im, 0.2) : décroît l'intensité de l'image de 20%.
Ajout de 2 images :
imgAdd(im1, im2) : renvoie une image dont les couleurs sont les sommes des couleurs des pixels (pixel par pixel et composante par composante si image RGB) plafonnées à 255
Moyenne d'une liste d'images :
imgAverage(list(im1, im2)) : fait la moyenne d'une liste d'images (deux ou plus), pixel par pixel et composante par composante (si image RGB).
Maximum d'une liste d'images :
imgMaximum(list(im1, im2) : calcule le maximum d'une liste d'images (deux ou plus), pixel par pixel et composante par composante (si image RGB).
Différence de 2 images :
imgDiffer(im1, im2) : soustrait de la première image la deuxième image, pixel par pixel et composante par composante (si image RGB). Les composantes négatives sont ramenées à 0.
Multiplication de 2 images :
imgMultiply(im1, im2) : multiplie les deux images, pixel par pixel et composante par composante (si image RGB). Les composantes supérieures à 255 sont ramenées à 255.
Division de 2 images :
imgDivide(im1, im2) : divise la première image par la deuxième, pixel par pixel et composante par composante (si image RGB). Les composantes de la deuxième image qui sont à 0 donnent un résultat à 0, même si pareil pour la première (i.e. ici, x / 0 = 0 et 0 / 0 = 0).
Opérations sur les images avec des constantes. On peut faire :
- im + 10 : rajout d'une constante.
- im - 10 : soustraction d'une constante.
- im * 1.5 : multiplication par une constante.
- im / 1.5 : division par une constante.
- à chaque fois, le résultat doit être entre 0 et 255, sinon il y a erreur. Moyen pour en être sûr : (im - 10) %% 255.
Opérateurs booléens sur les images :
- imgAND(im1, im2) : renvoie une image dont chaque pixel et chaque composante (si image RGB) est le "et" logique des pixels et composantes des images de départ.
- imgOR(im1, im2) : renvoie une image dont chaque pixel et chaque composante (si image RGB) est le "ou" logique des pixels et composantes des images de départ.
- imgXOR(im1, im2) : renvoie une image dont chaque pixel et chaque composante (si image RGB) est le "ou" exclusif logique des pixels et composantes des images de départ.
Copyright Aymeric Duclert
programmer en R, tutoriel R, graphes en R