Problème conversion d'images (échelle couleur Viridis)

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Christophe Grard
Messages : 2
Enregistré le : 10 Déc 2024, 13:20

Problème conversion d'images (échelle couleur Viridis)

Messagepar Christophe Grard » 10 Déc 2024, 15:41

Bonjour,

J’aurais besoin de vos lumières pour convertir des images générées en png (il s’agit d’UMAP en densité de couleurs via Nebulosa à partir d’objets Seurat).
Je voudrais convertir ces images en utilisant l’échelle turbo du package viridis/viridisLite. J’ai essayé

Code : Tout sélectionner

scale_fill_gradientn(colours = viridis(256, option = "H"))
mais sans succès.
Qui plus est, j’ai également essayé de charger les images générées par la boucle avec Nebulosa via la commande :

Code : Tout sélectionner

img <- image_read
J’ai systématiquement le message d’erreur : could not find function "image_read". Idem en utilisant la commande

Code : Tout sélectionner

readPNG
j’obtiens le message d’erreur : could not find function "readPNG". Pour précision, les images png générées l’ont été via la commande

Code : Tout sélectionner

png(filename, width = 5000, height = 5000,res=200)
Est-ce que la dimension pourrait être une des causes du problème ?

En vous remerciant par avance.

Logez Maxime
Messages : 3154
Enregistré le : 26 Sep 2006, 11:35

Re: Problème conversion d'images (échelle couleur Viridis)

Messagepar Logez Maxime » 10 Déc 2024, 17:05

Bonjour,

s'il le message est qu'il ne trouve pas les fonctions c'est que tu n'as pas chargé les librairies qui proposent ces fonctions comme magick, ou png.
Tu peux faire ça en faisant library(magick) et/ou library(png), mais il faut les avoir installer préalablement avec la commande install.packages(c("magick", "png")).

Cordialement,
Maxime

Christophe Grard
Messages : 2
Enregistré le : 10 Déc 2024, 13:20

Re: Problème conversion d'images (échelle couleur Viridis)

Messagepar Christophe Grard » 13 Déc 2024, 14:29

Bonjour,

Merci beaucoup pour la réponse. Désolé j'ai effectivement oublié de préciser que les librairies/packages afférents étaient bien installés.
J'ai néanmoins désinstallé la librairie png, puis procédé à une réinstallation en récupérant le png_0.1-8.tar.gz. Je fonctionne avec RStudio.

J'ai aussi modifié le code, le chargement de l'image originale (densité de points via Nebulosa) se fait maintenant correctement, et la conversion de l'image en niveau de gris avec enregistrement de l'image se fait sans soucis.

Code : Tout sélectionner

library(png)
library(viridis)
library(viridisLite)
library(ggplot2)
library(grid)
library(imager)
chemin<-"D:\\dossier contenant Image.origine"
setwd(chemin)
img = readPNG("Image.origine.png")
z = load.image("Image.origine.png")
z = grayscale(z)
save.image(im = z, "Image.origine-GRAY.png")
img = readPNG("Image.origine-GRAY.png")
 


En revanche lorsque j'utilise la commande :

Code : Tout sélectionner

scale_fill_viridis_c(option = "H")

j'ai bien la création d'un fichier image en png mais qui ne comporte aucune UMAP. Les codes suivants ne changent pas l'issue non plus :

Code : Tout sélectionner

scale_fill_viridis_d(option = "H")

Code : Tout sélectionner

img_turbo<-viridis::viridis(n=256, option = "turbo")

Code : Tout sélectionner

img_viridis <- turbo(256)[as.numeric(cut(img_gray, breaks = 256))]

Quelqu'un a-t-il une idée pour convertir cette image en échelle turbo/viridis ?

D'avance merci.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité