Il est fréquent de vouloir reproduire les beautiful color schemes utilisées dans les publications scientifiques, notamment les dégradés de couleurs.
Cet article présente une méthode pour extraire le colormap d'une colorbar présente dans une image utilizando MATLAB.
Une fonction utilitaire a été dévelopée pour cette tâche.
Mode d'emploi :
Premièrement, capturez la colorbar et enregistrez-la en tant qu'image JPEG (note : l'image doit contenir uniquement la colorbar de manière complète).
Ensuite, exécutez la fonction suivante :
PaletteRGB = ExtrairePalette(nomFichier, orientation, varargin)
Cette fonction retourne la matrice de couleurs RGB correspondant au colormap de la colorbar.
Paramètres d'entrée :
- nomFichier : chemin vers le fichier image
- orientation : orientation de la colorbar - 'horizontal' ou 'vertical'
Paramètres optionnels :
- sauvegarderRGB : sauvegarder le tableau RGB (0 = non, 1 = oui)
- cheminSortie : répertoire de sauvegarde du tableau RGB
- nomMat : nom du fichier MAT à générer
- afficherPalette : afficher le résultat extrait (0 = non, 1 = oui)
Paramètre de sortie :
- PaletteRGB : matrice RGB représentant le colormap extrait de l'image
Exemple d'utilisation :
% Exemple : colorbar bleu-rouge
nomFichier = 'ColorbarExemple.jpg';
Palette = ExtrairePalette(nomFichier, 'horizontal', 'afficherPalette', 1, 'nomMat', 'BleuRouge_Palette', 'sauvegarderRGB', 1);
Dans cet exemple, 'ColorbarExemple.jpg' correspond à l'image de la colorbar à extraire.
Le paramètre 'horizontal' indique que la colorbar est orientée horizontalement.
'afficherPalette' permet de visualiser le colormap extrait.
'sauvegarderRGB' et 'nomMat' permettent de sauvegarder le tableau RGB extrait dans un fichier nommé 'BleuRouge_Palette.mat'.
Le résultat extrait se présente comme suit :
Voici le code complet de la fonction :
function PaletteRGB = ExtrairePalette(nomFichier, orientation, varargin)
% Cette fonction extrait la matrice de couleurs RGB d'une colorbar présente dans une image
% Note : l'image doit contenir uniquement la colorbar
%
% Entrées :
% nomFichier : nom du fichier image contenant la colorbar
% orientation : 'horizontal' ou 'vertical'
%
% Options :
% sauvegarderRGB : sauvegarder le tableau RGB (défaut : 0)
% cheminSortie : répertoire de sauvegarde (défaut : répertoire courant)
% nomMat : nom du fichier MAT (défaut : 'sansTitre')
% afficherPalette : afficher le résultat (défaut : 0)
%
% Sortie :
% PaletteRGB : matrice RGB du colormap extrait
% Valeurs par défaut des options
sauvegarderRGB = 0;
cheminSortie = '';
nomMat = 'sansTitre';
afficherPalette = 0;
% Traitement des arguments optionnels
while ~isempty(varargin)
switch lower(varargin{1})
case 'sauvegarderrgb'
sauvegarderRGB = varargin{2};
case 'nommat'
nomMat = varargin{2};
case 'cheminsortie'
cheminSortie = varargin{2};
case 'afficherpalette'
afficherPalette = varargin{2};
otherwise
error(['Propriété non reconnue : ' varargin{1}]);
end
varargin([1,2]) = [];
end
% Lecture de l'image de la colorbar
ImageBarre = imread(nomFichier);
% Extraction des composantes RGB
switch orientation
case 'horizontal'
PaletteRGB = squeeze(ImageBarre(1,:,:));
case 'vertical'
PaletteRGB = squeeze(ImageBarre(:,1,:));
otherwise
error('Orientation invalide. Utilisez horizontal ou vertical');
end
% Sauvegarde du tableau RGB
if sauvegarderRGB == 1
save([cheminSortie, nomMat], 'PaletteRGB');
end
% Affichage du résultat extrait
if afficherPalette == 1
figure;
colormap(PaletteRGB);
colorbar;
end
end