> Divers > Analyse des images : biOps > Introduction à biOps
Introduction à biOps
le package biOps de R permet de faire de l'analyse d'image très simplement, avec un certains nombre de fonctions de transformation d'image très faciles d'utilisation.
Lecture d'une image :
im <- readJpeg("myImage.jpg")
Renvoie un objet de la classe imagedata, qui est aussi un array avec pour dimensions :
- hauteur x largeur, pour une image en niveau de gris.
- hauteur x largeur x 3, pour une image en couleurs, avec sur la 3ème dimension R, G et B respectivement (red, green blue)
Les valeurs sont entre 0 et 255.
Lecture d'une image au format tiff :
im <- readTiff("myImage.tiff")
Ecriture d'une image :
writeJpeg("myImage.jpg", im)
On peut écrire une image au format tiff avec writeTiff("myImage.tiff", im)
Création d'une image de classe imagedata : il faut donner les valeurs entre 0 et 255 :
- en couleurs :
arr <- array(c(outer(seq(0, 127, 1), seq(0, 127, 1), "+"),
outer(seq(0, 127, 1), seq(127, 0, -1), "+"),
outer(seq(127, 0, -1), seq(0, 127, 1), "+")),
dim = c(128, 128, 3))
im <- imagedata(arr, type = "rgb")
pour voir les données numériques correspondant à l'image, il suffit de faire print(im[,,])
- en niveaux de gris :
mat <- matrix(c(outer(seq(0, 127, 1), seq(0, 127, 1), "+")), nrow = 128, ncol = 128)
im <- imagedata(mat, type = "grey")
imageType : renvoie le type de l'image : rgb ou grey :
imageType(im)
Extractions de chaque couleur indépendamment :
- imgRedBand(im) : renvoie une image en niveau de gris correspondant à la composante rouge.
- imgGreenBand(im) et imgBlueBand(im) : pareil pour les 2 autres couleurs.
Conversion d'une image couleurs en niveaux de gris :
- imgRGB2Grey(im) : renvoie l'image en niveaux de gris à partir d'une image en couleurs
- imgRGB2Grey(im, coefs = c(0.7, 0, 0.2)) : renvoie une image en niveaux de gris en appliquant à chaque couleur le coefficient indiqué (dans l'ordre, R, G, B).
- le défaut des coefficients est en fait c(0.30, 0.59, 0.11) (coefficients présents dans la formule de la luminance).
- la somme des coefficients doit être <= 1 (mais peut être < 1, ce qui fait une image plus noire).
- imgRGB2Grey(im, coefs = c(1, 0, 0)) est équivalent à imgRedBand(im)
Reconstitution d'une image en couleur à partir de ses composantes en niveaux de gris :
imgGetRGBFromBands(imR, imG, imB) : renvoie l'image en couleur si on donne les trois images en niveau de gris correspondant à R, G et B.
Copyright Aymeric Duclert
programmer en R, tutoriel R, graphes en R