Skript reliefman.m
clc;clear all;pobr=1;format compact;close all
warning off all;warning('off','MATLAB:dispatcher:InexactMatch');
clear,clc;
pocet_obrazku=150,%zadej pocet obrazku pocet_harm=30;pobr=1;
for k=118:118+pocet_obrazku name=num2str(k);
obr=imread(['obr_' num2str(k) '.tif']);
obr=obr(400:end-300,:,:);
figure,imshow(obr,[]) Gx=obr;
obr=rgb2gray(obr);
bw=histeq(obr,256);
figure,imshow(bw,[]) level2=graythresh(bw);
BW = im2bw(bw, level2);
BW_1=abs(BW-1);
figure,imshow(BW1_1);
BW1= imfill(BW1_1);
figure,imshow(BW1,[]) se=strel('disk',1);
BW3=abs(BW1-1);
for i=1:5
BW3=imerode(BW3,se);
end
figure,imshow(BW3) se=strel('disk',3);
BW4=imdilate(BW3,se);
figure,imshow(BW4,[]) BW4=abs(1-BW4);
figure,imshow(BW4,[]) BW8=BW4';
%figure,imshow(BW8) data=[];
for kk=1:size(BW8,1)
[r s]=find(BW8(kk,:)==1,1,'first');
data=[data;kk,s];
end
str_data=round(mean(data(:,2)));
%data(:,2)=data(:,2)-str_data;
data_fft=fft(data(:,2));
data_upr=data_fft;
data_upr(pocet_harm:length(data_upr)-pocet_harm,1)=0; %eliminace amplitud na vyssich frekv z obou stran spektra- suda fce
%data_upr(pocet_harm:length(data_upr)- pocet_harm,2)=0;
data_ifft_u=ifft(data_upr);
%figure,plot(data(:,1),data(:,2),'b',data(:,1),abs(data_ifft_u(:,1)),'r %');
%axis equal; %abs-je treba zobrazovat abs hodnotu re cisla
for jj=1:length(data)
Gx (data(jj,2),data(jj,1),1)=255; Gx(str_data,data(jj,1),1)=0;
Gx(round(abs(data_ifft_u(jj,1))),data(jj,1),1)=0;
Gx (data(jj,2),data(jj,1),2)=0; Gx(str_data,data(jj,1),2)=255;
Gx(round(abs(data_ifft_u(jj,1))),data(jj,1),2)=0;
Gx (data(jj,2),data(jj,1),3)=0; Gx(str_data,data(jj,1),3)=0;
Gx(round(abs(data_ifft_u(jj,1))),data(jj,1),3)=255;
end
figure,imshow(Gx,[]) end
Skript drsnostRCM.m
clc;clear all;pobr=1;format compact;close all
warning off all;warning('off','MATLAB:dispatcher:InexactMatch');
clear,clc;
pocet_obrazku=150; %zadej pocet obrazku pocet_harm=30;pobr=1;
sloupec=3;%-- 8.12.11 12:16 --%
cit=1;
vysledky=[];
data_matice=[];
data_matice_str=[];
for k=100:100+pocet_obrazku name=num2str(k);
obr=imread(['a1t' num2str(k) '.tif']);
%obr=obr(400:end-300,:,:);
%figure,imshow(obr,[]) Gx=obr;
obr=rgb2gray(obr);
bw=histeq(obr,256);
%figure,imshow(bw,[]) level2=graythresh(bw);
BW = im2bw(bw,level2);
BW1_1=abs(BW-1);
%figure,imshow(BW1_1,[]) BW1 = imfill(BW1_1);
%figure,imshow(BW1,[]) se = strel('disk',1);
BW3=abs(BW1-1);
for i=1:5
BW3 = imerode(BW3,se);
end
%figure,imshow(BW3) se = strel('disk',3);
BW4 = imdilate(BW3,se);
%figure,imshow(BW4,[]) BW4=abs(1-BW4);
%figure,imshow(BW4,[]) BW8=BW4';
%BW8=abs(1-BW8);
%figure,imshow(BW8) data=[];
for kk=1:size(BW8,1)
[r s]=find(BW8(kk,:)==1,1,'first');
data=[data; kk s];
end
data(:,2)=-1*data(:,2);
data_fft=fft(data(:,2));
data_upr=data_fft;
data_upr(pocet_harm:length(data_upr)-pocet_harm,1)=0; %eliminace amplitud na vyssich frekv z obou stran spektra - suda fce
data(:,3)=-1*abs(ifft(data_upr));
str_data=(mean(data(:,3)));
data(:,3)=data(:,sloupec)-str_data;
yna=detrend(data(:,3));
yva=detrend(abs(data(:,3)));
pyva=detrend(data(:,2));
man(k,:)=yna;
mav(k,:)=yva;
pov(k,:)=pyva;
yna1=detrend(data(:,2));
%yva1=detrend(abs(data(:,2)));man1(k,:)=yna1;mav1(k,:)=yva1;
%yna=max(yna)-yna/(max(yna)-min(yna));yva=max(yva)-yva/(max(yva)- min(yva));%mass(k,:)=yva;
str_data=(mean(data(:,sloupec)));
data_matice=[data_matice; k data(:,sloupec)'];
%data_matice_str=[data_matice; k (data(:,sloupec)-str_data)'];
data(:,2)=data(:,2)-mean(data(:,2));
data(:,sloupec)=data(:,sloupec)-str_data;
str_data=(mean(data(:,sloupec)));
data(:,4)=data(:,sloupec)*-1+2*str_data;
data(:,5)=data(:,sloupec)>str_data;
data(:,5)=data(:,5).*data(:,sloupec);
data(:,6)=data(:,sloupec+1)>str_data;
data(:,6)=data(:,6).*data(:,sloupec+1);
MX=[ones(length(data),1)];
scp=(inv(MX'*MX)*MX'*data(:,sloupec));
roz=(data(:,sloupec)-scp);
rozsort=sort(roz,'descend');
MAD=1/length(data)*(sum(abs(roz)));
Rmax=max(roz); [ind1]=find(roz==Rmax);
Rmin=min(roz); [ind2]=find(roz==Rmin);
Rm=Rmax-Rmin;
TP=(sum(rozsort(1:5))+sum(rozsort(end-4:end)))/10;
[ind3]=find(round(data(:,sloupec))==round(scp));
pom=diff(ind3);
Zm=mean(pom(pom~=1));
[ind4 c1]=findpeaks(data(:,5));
Z=mean(diff(c1));
pomtp=[];
for kk=1:length(data)-1
pomtp=[pomtp; kk pdist([data(kk:kk+1,1) data(kk:kk+1,3)])];
end
tp=sum(pomtp(:,2))/length(data);
P=ind4-scp; % [ind5]=find(P<0); P(ind5)=0;
MP=mean(P);
[ind6 c2]=findpeaks(data(:,6));
V=ind6-scp; %[ind7]=find(V<0); V(ind7)=0;
MV=mean(V);
SD=std(data(:,sloupec));
CV=SD/MAD;
PSC=sqrt(mean((diff(data(:,3)).^2)));
PC=sqrt(mean((diff(data(:,3),2).^2)));
MS=mean(abs(diff(data(:,3))));
vysledky=[vysledky; cit str_data scp MAD Rm TP Zm Z tp MP MV SD CV MS PSC PC MS];
cit=cit+1
%vektor=data(:,2)';
%vysl=[];
%n=10;
%for i=1+n:length(data)-n
%if vektor(i)>vektor(i-n:i-1) & vektor(i)>vektor(i+1:i+n)
%vysl=[vysl; i vektor(i)];
%end %end %vysl
% for jj=1:length(data)
% Gx(round(data(jj,2)),round(data(jj,1)),1)=255;
Gx(str_data,data(jj,1),1)=0;
%Gx(round(abs(data_ifft_u(jj,1))),data(jj,1),1)=0;
% Gx(round(data(jj,2)),round(data(jj,1),2))=0;
Gx(str_data,data(jj,1),2)=255;
%Gx(round(abs(data_ifft_u(jj,1))),data(jj,1),2)=0;
% Gx(round(data(jj,2)),round(data(jj,1)),3)=0;
Gx(str_data,data(jj,1),3)=0;
%Gx(round(abs(data_ifft_u(jj,1))),data(jj,1),3)=255;
% end
%figure,imshow(Gx,[])
% %figure
%plot(data(:,1),data(:,2),'b'),hold on %plot(data(:,1),data(:,3),'r')
%plot(data(:,1),str_data*ones(length(data),1),'k') %plot([ind1(1) ind1(1)],[scp scp+Rmax],'g')
%plot([ind2(1) ind2(1)],[scp scp+Rmin],'g') end
%man(1:100,:)=[];
%figure
%surf(man);colorbar
%shading interp
%colormap jet
%view(-13,72)
%pov(1:100,:)=[];
%figure
%surf(pov);colorbar
%shading interp
%colormap jet
%view(-13,72)
%figure %mesh(mav);
%colorbar;
%figure %surfc(mav);
%mass=(mav);
%contour(mass)
%
%figure %mesh(mav1);
%colorbar;
%figure
%surfc(mav1);
%mass1=(mav1);
%contour(mass1)
%mav (1:100,:)=[];
%figure
%mesh(max(mav(:))-mav);
%colorbar;
%figure
%surfc(max(mav(:))-mav);
%mass=(max(mav(:))-mav);
%contour(mass);colormap(jet);colorbar;c1=1;title('height variation');
%figure
%[X Y]=meshgrid(1:1268,1:101);
%Z=data_matice_str(2:end,2:end);
%surf(X,Y,Z) %shading interp
Skript drsnostT.m
clear,clc,close all load vzorka_A.mat pocet_harm=30;
sloupec=3;
A=M(:,3);A(end)=[];
B = reshape(A,1501,1000);
B=B';
[r s]=find(B<3000);
for i=1:length(r) B(r(i),s(i))=NaN;
end
pom=isnan(B);
[r s]=find(pom==1);
ok=5;
for i=1:length(r)
if r(i)>size(B,1)-ok
B(r(i),s(i))=nanmean(nanmean(B(r(i)-ok:r(i),s(i)-ok:s(i))));
elseif s(i)>size(B,2)-ok
B(r(i),s(i))=nanmean(nanmean(B(r(i)-ok:r(i),s(i)-ok:s(i))));
else B(r(i),s(i))=nanmean(nanmean(B(r(i):r(i)+ok,s(i):s(i)+ok)));
end end
%figure,imshow(B,[]) %C=mat2gray(B);
%C=round(C*100)/100;
%figure,imshow(C,[]) cit=1;
vysledky=[];
data_matice=[];
data_matice_str=[];
data(:,1)=1:size(B,2);
for k=1:size(B,1)
data_fft=fft(B(k,:));
data_upr=data_fft;
data_upr(1,pocet_harm:length(data_upr)-pocet_harm)=0; %eliminace amplitud na vyssich frekv z obou stran spektra - suda fce
data(:,2)=B(k,:)';
str_data=(mean(data(:,2)));
data(:,2)=data(:,2)-str_data;
data(:,3)=abs(ifft(data_upr))';
str_data=(mean(data(:,3)));
data(:,3)=data(:,3)-str_data;
yna=detrend(data(:,3));
yva=detrend(abs(data(:,3)));
man(k,:)=yna;
mav(k,:)=yva;
yna=max(yna)-yna/(max(yna)-min(yna));
yva=max(yva)-yva/(max(yva)-min(yva));%mass(k,:)=yva;
str_data=(mean(data(:,sloupec)));
data_matice=[data_matice; k data(:,sloupec)'];
data_matice_str=[data_matice; k (data(:,sloupec)-str_data)'];
data(:,4)=data(:,sloupec)*-1+2*str_data;
data(:,5)=data(:,sloupec)>str_data;
data(:,5)=data(:,5).*data(:,sloupec);
data(:,6)=data(:,sloupec+1)>str_data;
data(:,6)=data(:,6).*data(:,sloupec+1);
MX=[ones(length(data),1)];
scp=(inv(MX'*MX)*MX'*data(:,sloupec));
roz=(data(:,sloupec)-scp);
rozsort=sort(roz,'descend');
MAD=1/length(data)*(sum(abs(roz)));
Rmax=max(roz); [ind1]=find(roz==Rmax);
Rmin=min(roz); [ind2]=find(roz==Rmin);
Rm=Rmax-Rmin;
TP=(sum(rozsort(1:5))+sum(rozsort(end-4:end)))/10;
pom=[];
for ii=1:size(data,1)-1 if data(ii,3)*data(ii+1,3)<0 pom=[pom; ii];
end end
%[ind3]=find(round(data(:,sloupec))==round(scp));
pom=diff(pom);
Zm=mean(pom(pom~=1));
[ind4 c1]=findpeaks(data(:,5));
Z=mean(diff(c1));
pomtp=[];
for kk=1:length(data)-1
pomtp=[pomtp; kk pdist([data(kk:kk+1,1) data(kk:kk+1,3)])];
end
tp=sum(pomtp(:,2))/length(data);
P=ind4-scp; % [ind5]=find(P<0); P(ind5)=0;
MP=mean(P);
[ind6 c2]=findpeaks(data(:,6));
V=ind6-scp; %[ind7]=find(V<0); V(ind7)=0;
MV=mean(V);
SD=std(data(:,sloupec));
CV=SD/MAD;
PSC=sqrt(mean((diff(data(:,3)).^2)));
PC=sqrt(mean((diff(data(:,3),2).^2)));
MS=mean(abs(diff(data(:,3))));
vysledky=[vysledky; cit str_data scp MAD Rm TP Zm Z tp MP MV SD CV MS PSC PC MS];
cit=cit+1
%figure
%plot(data(:,1),data(:,2),'b'),hold on %plot(data(:,1),data(:,3),'r')
%plot(data(:,1),str_data*ones(length(data),1),'k') %plot([ind1(1) ind1(1)],[scp scp+Rmax],'g')
%plot([ind2(1) ind2(1)],[scp scp+Rmin],'g') end
[X Y]=meshgrid(0.1:0.1:150.1,0.1:0.1:100);
figure,surf(X,Y,B) shading interp colormap jet
colorbar view(-13,72)
figure
surf(man);colorbar shading interp colormap jet view(-13,72)
mass=(max(mav(:))-mav);
contour(mass);colormap(jet);colorbar;c1=1;title('height variation');
Skript vyhodnoceni.m
clear,clc,close all load vysledkyRCMa.mat
% kalibrace 1px=... mm
kal=(1263/(2430/25.4))/1263;
kal2=0.03;
RCM=vysledky*kal2;
RCM(:,1:3)=[];
mRCM=mean(RCM);
mRCM([2 4 5])=[];
load vysledkyTa.mat stupen=1;
char=strvcat(' ','x','x^2','x^3','x^4');
T=vysledky*kal;
T(:,1:3)=[];
aaa=isnan(T);
[rr ss]=find(aaa==1);
T(rr,:)=[];
mT=nanmean(T);
mT([2 4 5])=[];
clear vysledky
plot(mRCM,mT,'o'),hold on corrcoef(mRCM,mT)
X=[ones(length(mT),1) mRCM'];
[b,bint,r,rint,stats] = regress(mT',X);
xx=min(mRCM):0.01:max(mRCM);
yy=polyval(flipud(b),xx);
plot(xx,yy,'r') rovnice=[];
for i=1:stupen+1
if b(i)>0; a='+ '; else a='- '; end
rovnice=[rovnice,a num2str(abs(b(i))) char(i,:)];
end
R2=sqrt(stats(1));
text(0.05,6,['y = ' rovnice],'FontSize',10) % 0.05,1.5 text(0.05,5.5,['R = ' num2str(R2)],'FontSize',10) % 0.05,1.3
[muhat1,sigmahat1,muci1,sigmaci1] = normfit(RCM,0.05);
[muhat2,sigmahat2,muci2,sigmaci2] = normfit(T,0.05);
figure,boxplot(RCM,'notch','on'), figure,boxplot(T,'notch','on'), e1=muci1(2,:)-muhat1;
e2=muci2(2,:)-muhat2;
figure,errorbar(1:14,muhat1,e1,'x'),hold on errorbar(1:14,muhat2,e2,'rx')
%vys=[];
%for j=1:size(RCM,2)
%[h,p,ci,stats] = ttest2(RCM(:,j),T(:,j),0.05) %jbtest(RCM(:,j),0.05);
%vys=[vys; h p ci' stats.tstat stats.df stats.sd];
%end %vys