1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
function ConvertHisto
% Pour convertir les histogrammes obtenus avec Aphelion. La fonction
% transforme les niveaux de gris en teneur en Calcium et normalise le
% nombre de pixels.
% X est la variable contenant l'histogramme
clear;
[FileName, PathName] = uigetfile('*.txt', 'Nom du fichier Histogramme ','MultiSelect', 'on');
%Affiche boite de dialogue pour fixer le seuil bas des niveaux de gris
prompt={'Entrer Valeur Niveau de Gris'};
dlg_title='Seuil Inférieur Niv de Gris:';
num_lines=1;
def={'34'};
options.Resize='on';
options.WindowStyle='normal';
options.Interpreter='tex';
Low_Threshold = inputdlg(prompt,dlg_title,num_lines,def,options);
Low_Threshold= str2double(Low_Threshold);
%Affiche boite de dialogue pour fixer la calibration
prompt={'Entrer le coefficient directeur a ', 'Entrer ordonnee à origine b '};
dlg_title='Droite de calibration y=ax+b';
num_lines=1;
def={'0.1767'; '-6.0093'};
options.Resize='on';
options.WindowStyle='normal';
options.Interpreter='tex';
data_calibration = inputdlg(prompt,dlg_title,num_lines,def,options);
coeff_dir = str2double (data_calibration(1));
ord_orig = str2double (data_calibration(2));
%Boucle de Traitement des Histogrammes
for ind_a=1:length(FileName)
histogrammename=fullfile(PathName,FileName{ind_a});
histogramme=importdata (histogrammename,'\t');
X=histogramme.data ;
X=X([(Low_Threshold+1):256],:);
[nbr_lig, nbr_col]= size(X);
%Boucle de Normalisation de la Fréquence de pixel
SumHisto=sum(X);
for ind_b=1:1:nbr_lig
X(ind_b,2)= X(ind_b,2)*100 / SumHisto(2);
end
%Boucle d'intégration de la calibration
for ind_c=1:1:nbr_lig
X(ind_c,1)= (X(ind_c,1)* coeff_dir)+ ord_orig;
end
%FileName{ind_a}=num2str(FileName{ind_a});
%Sauvegarde du fichier en fichier .txt
save ([fullfile(FileName{ind_a}),'modif.txt'],'X','-ASCII','-TABS');
end |
Partager