📄 v3d_getcolormap.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function varargout = v3d_getcolormap(varargin)
% Farbpaletten ermitteln/importieren
% --------------------------------------------------------------------
%
% v3d_getcolormap
% Liefert eine Liste aller verf黦baren Standardfarbpaletten,
% aller im Verzeichnis color befindlichen benutzerdefinierte Farb-
% paletten und alle Benutzerdefinierte Farbpalettenfunktionen zur點k
%
% bekannte benutzerspezifische Formate:
%
% Programm | Dateiendung | Unterfunktion
% ------------+---------------+--------------
% Slicer | .cmp | importcmp
% Pulse Ekko | .tbl | importtbl
%
%
% v3d_getcolormap(filename)
% Farbpalettenwerte werden aus filename importiert und zur點kgeben
%
% v3d_getcolormap(function)
% Farbpalettenwerte werden generiert und zur點kgeben
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Benutzerdefinierte Farbpaletten
% Format: 'Pfad/*.Dateiendung'
usrmap={'color/*.cmp';...
'color/*.tbl';};
% Benutzerdefinierte Funktionen
% Format: 'Name' 'Funktion'
fctmap={'hotgray' 'hot.*gray';...
'hotjet' 'hot.*jet';};
% Standardpaletten
% Format: 'Name' 'Funktion'
stdmap={'autumn' 'autumn';...
'bone' 'bone';...
'cool' 'cool';...
'copper' 'copper';...
'gray' 'gray';...
'hot' 'hot';...
'hsv' 'hsv';...
'jet' 'jet';...
'pink' 'pink';...
'spring' 'spring';...
'summer' 'summer';...
'winter' 'winter';};
% Trennzeichen
% Format: 'Name' Funktion
delimiter={'---' 'jet'};
% --------------------------------------------------------------------
% Wenn Parameter vorhanden -> Dateiname oder Funktion wurde angegeben
if nargin==1
% Testen ob Standartfarbpalette
if any(strcmp(stdmap(:,1),varargin{1}))
pos=strmatch(varargin{1},stdmap,'exact');
varargout={stdmap{pos(1),2}};
else
% Testen ob Benutzerdefinierte Funktion
if any(strcmp(fctmap(:,1),varargin{1}))
pos=strmatch(varargin{1},fctmap,'exact');
varargout={fctmap{pos(1),2}};
else
% Testen ob Trennlinie ausgew鋒lt
if any(strcmp(delimiter(1,1),varargin{1}))
varargout=delimiter(1,2);
else
% Ansonsten Benutzerdefinierte Farbpalette importieren
% 躡ergabe des Dateinamens filename und R點kgabe der Farbpalette
varargout={num2str(v3d_importcolormap(varargin{1}))};
end
end
end
else
% Kein Parameter -> Auflisten aller verf黦baren Farbpaletten
% Namen der Standardpaletten und Funktionen zusammenf黦en
cmaplist=[ stdmap(:,1);...
delimiter(:,1);...
fctmap(:,1);...
delimiter(:,1);];
% Dateinamen der Benutzerdefinierten Farbpaletten finden
% und zur Farbpalettenliste hinzuf黦en
for k=1:length(usrmap)
[path,name,ext,ver] = fileparts(usrmap{k});
files=dir(usrmap{k});
for i=1:length(files)
cmaplist(length(cmaplist)+1)={strcat(path,'/',files(i).name)};
end
end
% R點kgabe der Zeichenkettenliste aller verf黦baren Farbpaletten
varargout={cmaplist(:)};
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function cmap = v3d_importcolormap(filename,usrmap)
% Farbpalette importieren
% --------------------------------------------------------------------
% bekannte benutzerspezifische Formate:
%
% Programm | Dateiendung | Unterfunktion
% ------------+---------------+--------------
% Slicer | .cmp | importcmp
% Pulse Ekko | .tbl | importtbl
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Test ob angegebene Datei vorhanden
fid = fopen(filename,'rt');
if (fid~=-1 & length(filename)>4)
endung=filename(length(filename)-3:length(filename));
switch (endung)
case '.cmp'
cmap=importcmp(filename);
case '.tbl'
cmap=importtbl(filename);
otherwise
error(['Fehler: Dateityp ' filename ' wird nicht unterst黷zt!']);
end
else
error(['Fehler: Konnte Datei ' filename ' nicht 鰂fnen!']);
end
fclose(fid);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function cmap = importcmp(filename)
% Slicer Farbpalette importieren
% --------------------------------------------------------------------
%
% Format der .cmp Datei:
%
% 10 Zeilen: Kommentar
% n Zeilen: Alpha R G B ; n
%
% Farbwertebereich von 0 bis 1
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Einlesen
[r g b] = textread(filename,'%*f %f %f %f ; %*d','headerlines',10);
% m鰃licherweise Testen ob < 128 -> Performancegr黱de
% R點kgabe an Hauptfunktion
cmap=[r g b];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function cmap = importtbl(filename)
% Pulse Ekko Farbpalette importieren
% --------------------------------------------------------------------
%
% Format der .tbl Datei:
%
% 1 Zeile : Kommentar
% n Zeilen: Schwarz Cyan Magenta Gelb
%
% Farbwertebereich von 0 bis 255
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Einlesen und 躡ergabe an Hauptfunktion
[c m y] = textread(filename,'%*f %f %f %f','headerlines',1);
% Umwandeln in RGB
r=((m(:)+y(:))/2)/255;
g=((c(:)+y(:))/2)/255;
b=((c(:)+m(:))/2)/255;
% R點kgabe an Hauptfunktion
cmap=[r(:),g(:),b(:)];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -