Bonjour,
je travaille sur un outil permettant l'étude de couverture radar.
En utilisant des enregistrements de longues durées, j'obtiens une figure contenant une image de ce type:
Je souhaite exporter cette figure au format PNG avec gestion de la transparence:
les partie bleues foncées doivent être transparentes.
Je pars de la matrice 2D appelée Vq obtenue avec la fonction hist3 et "améliorée" avec une interpolation et un filtrage.
Sa taille dépend de la résolution que je veux.
Voici la méthode que j'ai employée pour obtenir une image png avec transparence des zones "mortes":
Cela fonctionne très bien dans une certaine plage de résolution mais à partir d'une certaine résolution, j'ai un "OUT OF MEMORY" sur la dernière ligne...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 %CREATION DU FICHIER PNG AVEC TRANSPARENCE DES ZONES MORTES %Miroir par rapport à l'axe des X Mi=flipud(Vq); %Normalisation des valeurs dans la matrice 2D à faire pour le imwrite %(contrairement à imagesc qui le fait automatiquement VqScaled = uint8(64*Mi/max(Mi(:))); %Colormap cmp = colormap('Jet'); % 256 element colormap %Création de la matrice en RGB (indispensable pour imwrite) RGB = ind2rgb(VqScaled,cmp); %Création de l'alphamap qui gère la transparence AData=Mi; AData(AData<=0)=0; AData(AData>0)=1; %Création du fichier image imwrite(RGB,cmp,'myfile.png','Alpha', AData);
Par exemple, dans le cas de l'image en pièce jointe, l'affichage dans ma GUI fonctionne (en utilisant imagesc(x,x,Vq) ) mais l'export en png plante.
La matrice RGB fait 5001x5001x3, et étant de type double, pas étonnant que ça rame...
En la passant en single, ça passe, mais le temps de traitement n'est pas super...
J'ai mis un peu de temps pour trouver une méthode qui fonctionne pour cet export...
Existe-t-il un autre moyen pour arriver à mes fins?
Peut être suis-je un peu trop gourmand sur la résolution de mon image?
Merci d'avance pour votre aide...
Partager