nFFiles = numel(FFiles); % Counts files\r
LevelNum=str2double(SelectedDirectory{iii}(7:9))*1000;\r
\r
-%% variable allocation\r
-\r
- Height = zeros(1,nFFiles);\r
- Metr_fit_H = zeros(1,nFFiles);\r
- Bottom = zeros(1,nFFiles);\r
- Metr_fit_B = zeros(1,nFFiles);\r
-\r
-%%\r
% Initiation from the first file\r
ImageName = FFiles(1).name;\r
start_time = duration([(ImageName(8:9)) ':' (ImageName(10:11)) ':' (ImageName(12:16))],'Format',infmt);\r
[MeterScale, polypar_Metr] = meter(SelectedDirectory{iii}, ContrastFigure, ResFile);\r
D_num=str2double(SelectedDirectory{iii}(21)); % position of camera\r
\r
-% load of all files in cycles\r
+% Set loop variables\r
step=1;\r
startFile= 40; %945; %200 (20. )\r
endFile= 110; %nFFiles; %1000; %325 (20.)\r
- nFFiles=endFile; % Attention!!!\r
- for jjj=startFile:step:nFFiles % Cycles for figures files\r
- ImageName = FFiles(jjj).name;\r
- Figure = imread([FFiles(jjj).folder '/' ImageName]);\r
+ nFFiles=(endFile - startFile / step) + 1; % Attention!!!\r
+\r
+%% variable allocation\r
+\r
+ Height = zeros(1,nFFiles);\r
+ Metr_fit_H = zeros(1,nFFiles);\r
+ Bottom = zeros(1,nFFiles);\r
+ Metr_fit_B = zeros(1,nFFiles);\r
+\r
+%%\r
+% load all files in a loop\r
+ for jjj=1:nFFiles % Cycles for figures files\r
+ file_ind = startFile + (jjj - 1) * step;\r
+ ImageName = FFiles(file_ind).name;\r
+ Figure = imread([FFiles(file_ind).folder '/' ImageName]);\r
ContrastFigure = imadjust(Figure); % Adjust the contrast of the image using imadjust.\r
IntensitiesAverFin{jjj} = get_representative_intensities(ContrastFigure);\r
\r
imshow(ContrastFigure, 'Parent', ax)\r
hold(ax, 'on');\r
plot(ax, IntensitiesAverFin{jjj},'-y','linewidth',2)\r
- if jjj>=startFile+step %subtracts the intensities\r
+ if jjj > 1 %subtracts the intensities\r
plot(IntensitiesAverFin{jjj-step},'Color',[0.9290 0.6940 0.1250],'linewidth',2)\r
hold on\r
IntensitiesAverFin_2{jjj}=IntensitiesAverFin{jjj}-IntensitiesAverFin{jjj-step};\r
% % plot(lk,abs(pk),'oc','linewidth',2)\r
if D_num==1\r
LevelPixels=MeterScale(1+(1000-LevelNum)/100); % x level in pixels in the original image\r
- if jjj<startFile+step\r
+ if jjj == 1\r
[pk,lk] = findpeaks(-IntensitiesAverFin{jjj}(1:(LevelPixels+30))); %10\r
- [Height(1,jjj),pkH]=max(pk);\r
+ [Height(jjj),pkH]=max(pk);\r
qH=lk(pkH);\r
- Metr_fit_H(1,jjj)=polyval(polypar_Metr,qH);\r
+ Metr_fit_H(jjj)=polyval(polypar_Metr,qH);\r
plot(ax, qH, -Height(jjj), 'or', 'linewidth', 2)\r
- elseif jjj>=startFile+step\r
+ else\r
if waytrend<=0;\r
[pk,lk] = findpeaks(-IntensitiesAverFin_2{jjj}(1:(LevelPixels+30))); %10\r
else\r
[pk,lk] = findpeaks(IntensitiesAverFin_2{jjj}(1:(LevelPixels+30))); %10\r
end\r
- [Height(1,jjj),pkH]=max(pk);\r
+ [Height(jjj),pkH]=max(pk);\r
if max(pk)>=10; % error cleaning %30\r
qH=lk(pkH);\r
- Metr_fit_H(1,jjj)=polyval(polypar_Metr,qH);\r
+ Metr_fit_H(jjj)=polyval(polypar_Metr,qH);\r
end\r
plot(ax, qH, Height(jjj), 'om', 'linewidth', 2)\r
end\r
\r
elseif D_num==2\r
LevelPixels=MeterScale(1); % x level in pixels in the original image\r
- if jjj<startFile+step\r
+ if jjj == 1\r
[pk,lk] = findpeaks(-IntensitiesAverFin{jjj}(LevelPixels:end)); %10\r
- [Height(1,jjj),pkH]=max(pk);\r
+ [Height(jjj),pkH]=max(pk);\r
qH=LevelPixels+lk(pkH);\r
- Metr_fit_H(1,jjj)=polyval(polypar_Metr,qH);\r
+ Metr_fit_H(jjj)=polyval(polypar_Metr,qH);\r
plot(ax, qH, -Height(jjj), 'or', 'linewidth', 2)\r
- elseif jjj>=startFile+step\r
+ else\r
if waytrend<=0;\r
[pk,lk] = findpeaks(-IntensitiesAverFin_2{jjj}(LevelPixels:end)); %10\r
else\r
[pk,lk] = findpeaks(IntensitiesAverFin_2{jjj}(LevelPixels:end)); %10\r
end\r
- [Height(1,jjj),pkH]=max(pk);\r
+ [Height(jjj),pkH]=max(pk);\r
qH=LevelPixels+lk(pkH);\r
- Metr_fit_H(1,jjj)=polyval(polypar_Metr,qH);\r
+ Metr_fit_H(jjj)=polyval(polypar_Metr,qH);\r
if max(pk)<30; % error cleaning %30\r
qH=NaN;\r
- Metr_fit_H(1,jjj)=NaN;\r
+ Metr_fit_H(jjj)=NaN;\r
end\r
plot(ax, qH, Height(jjj), 'or', 'linewidth', 2)\r
end\r
end\r
\r
- if jjj<startFile+step\r
+ if jjj == 1\r
[pk2,lk2] = findpeaks(-IntensitiesAverFin{jjj},'MinPeakProminence',5); % Small peaks at the bubble/liquid interface\r
\r
[pk3,lk3] = findpeaks(-IntensitiesAverFin{jjj},'MinPeakProminence',5,'MinPeakDistance',30); % Throw out small random peaks in the liquid, peaks far apart cca 1cm\r
% % plot(lk2,abs(pk2),'om','linewidth',2)\r
hold on\r
\r
- [Bottom(1,jjj),pk2B]=max(abs(pk2)); % For 1-4 files\r
+ [Bottom(jjj),pk2B]=max(abs(pk2)); % For 1-4 files\r
qB=lk2(pk2B); % For 1-4 files\r
\r
- Metr_fit_B(1,jjj)=polyval(polypar_Metr,qB);\r
- if Metr_fit_B(1,jjj)>=(Metr_fit_H(1,jjj)-2) % Throw out the bubble/liquid interface if it is above the surface, 2cm 2D interface\r
- Metr_fit_B(1,jjj)=NaN;\r
+ Metr_fit_B(jjj)=polyval(polypar_Metr,qB);\r
+ if Metr_fit_B(jjj)>=(Metr_fit_H(jjj)-2) % Throw out the bubble/liquid interface if it is above the surface, 2cm 2D interface\r
+ Metr_fit_B(jjj)=NaN;\r
qB=NaN;\r
- elseif Bottom(1,jjj)<=(max(abs(pk))+min(abs(pk)))*0.62 % 0.65 is an estimate of how much intensity the bubbles need\r
- Metr_fit_B(1,jjj)=NaN; % For 1-4 files\r
+ elseif Bottom(jjj)<=(max(abs(pk))+min(abs(pk)))*0.62 % 0.65 is an estimate of how much intensity the bubbles need\r
+ Metr_fit_B(jjj)=NaN; % For 1-4 files\r
qB=NaN;\r
end\r
plot(ax, qB, Bottom(jjj), 'ob', 'linewidth', 2)\r
else\r
[pk2,lk2] = findpeaks(IntensitiesAverFin_2{jjj}(LevelPixels:end)); %10\r
end\r
- [Bottom(1,jjj),pk2B]=max(pk2);\r
+ [Bottom(jjj),pk2B]=max(pk2);\r
qB=LevelPixels+lk2(pk2B);\r
- Metr_fit_B(1,jjj)=polyval(polypar_Metr,qB);\r
+ Metr_fit_B(jjj)=polyval(polypar_Metr,qB);\r
if max(pk2)<=45; % error cleaning\r
qB=NaN;\r
- Metr_fit_B(1,jjj)=NaN;\r
+ Metr_fit_B(jjj)=NaN;\r
end\r
plot(ax, qB, Bottom(jjj), 'oc', 'linewidth', 2)\r
elseif D_num==2\r
else\r
[pk2,lk2] = findpeaks(IntensitiesAverFin_2{jjj}(LevelPixels:end)); %10\r
end\r
- [Bottom(1,jjj),pk2B]=max(pk2);\r
+ [Bottom(jjj),pk2B]=max(pk2);\r
qB=LevelPixels+lk2(pk2B);\r
- Metr_fit_B(1,jjj)=polyval(polypar_Metr,qB);\r
+ Metr_fit_B(jjj)=polyval(polypar_Metr,qB);\r
if max(pk2)<=20; % error cleaning\r
qB=NaN;\r
- Metr_fit_B(1,jjj)=NaN;\r
+ Metr_fit_B(jjj)=NaN;\r
end\r
plot(ax, qB, Bottom(jjj), 'oc', 'linewidth', 2)\r
end\r
end\r
\r
writematrix(["ImageName" "Date" "Time [s]" "Intensities Height [-]" "Intensities Bottom [-]" "Height [cm]" "Bottom [cm]" "Level [cm]"], ResFile, "Sheet", SelectedDirectory{iii}, "Range", "A1:H1");\r
- writematrix([ImageName string(Date(1,jjj)) seconds(Time(1,jjj)) Height(1,jjj) Bottom(1,jjj) Metr_fit_H(1,jjj) Metr_fit_B(1,jjj) LevelNum], ResFile, "Sheet", SelectedDirectory{iii}, "Range", ['A' num2str(jjj+1) ':H' num2str(jjj+1)]);\r
+ writematrix([ImageName string(Date(jjj)) seconds(Time(jjj)) Height(jjj) Bottom(jjj) Metr_fit_H(jjj) Metr_fit_B(jjj) LevelNum], ResFile, "Sheet", SelectedDirectory{iii}, "Range", ['A' num2str(file_ind+1) ':H' num2str(file_ind+1)]);\r
\r
- clear Figure\r
- clear ContrastFigure\r
- clear ContrastFigureFin\r
- % clear IntensitiesAverFin\r
end % jjj, Cycles for figures files\r
\r
hf4=figure ('Name','Velocity','NumberTitle','off','PaperSize',[8.5 6],'PaperUnits','centimeters');\r
- hp1=plot(seconds(Time(startFile:step:end)), Metr_fit_H(startFile:step:nFFiles),'-or','linewidth',2); % [1 startFile:step:nFFiles]\r
+ hp1=plot(seconds(Time), Metr_fit_H,'-or','linewidth',2); % [1 startFile:step:nFFiles]\r
hold on\r
- hp2=plot(seconds(Time(startFile:step:end)), Metr_fit_B(startFile:step:nFFiles),'-ob','linewidth',2);\r
+ hp2=plot(seconds(Time), Metr_fit_B,'-ob','linewidth',2);\r
hold on\r
- hp3=plot(seconds(Time(startFile:step:end)),LevelNum*ones(size(Time(startFile:step:end))),'-og','linewidth',2);\r
+ hp3=plot(seconds(Time),LevelNum*ones(size(Time)),'-og','linewidth',2);\r
\r
xlabel('time [s]','FontWeight','bold');\r
ylabel('position [cm]','FontWeight','bold');\r