• Non ci sono risultati.

Codici Matlab Appendice

N/A
N/A
Protected

Academic year: 2021

Condividi "Codici Matlab Appendice"

Copied!
6
0
0

Testo completo

(1)

Appendice

Codici Matlab

Calibrazione

L=imread('calibra.bmp'); % inserire il nome del file di calibrazione

L=wiener2(L,[5,5]); imshow(L) [ix,iy,mis]=improfile; figure plot(mis) figure plot(mis(2:end)-mis(1:end-1)) pause

mssx=input('margine superiore picco sinistro:'); misx=input('margine inferiore picco sinistro:'); msdx=input('margine superiore picco destro:'); midx=input('margine inferiore picco destro:');

c=5*input('numero celle:');

sx=[ix(mssx)+ix(misx)]/2; dx=[ix(msdx)+ix(midx)]/2;

unita=(dx-sx)/c;

save unita unita

Trazione

Inseguimento della posizione dei marker

% cambiare nome al file filmato % salvare

(2)

function misura=spostamento_traz

mov=aviread('traz3_100X.avi'); %nome file filmato

L=wiener2(mov(1).cdata,[5 5]); imshow(L) [ix,iy,mis]=improfile; [vali,pos,posinv]=multiple_position_image1(L,ix,iy,length(ix)); posinv(1) posinv(2) pos(1) pos(2) figure plot (mis(2:end)-mis(1:end-1)) i0in=1; mark1(1)=ix(posinv(i0in)); i0in=i0in+1; mark2(1)=ix(posinv(i0in)); val=abs(mark1-mark2);i0=i0in; while val<15 i0=i0+1; mark2=ix(posinv(i0)); val=abs(mark1-mark2); end i0in=1; mark11(1)=ix(pos(i0in)); i0in=i0in+1; mark22(1)=ix(pos(i0in)); val=abs(mark11-mark22);i0=i0in; while val<15 i0=i0+1; mark22=ix(pos(i0)); val=abs(mark11-mark22); end if(abs(mark11-mark1)>100) duffy=mark11; mark11=mark22; mark22=duffy; end misura(1,:)=[min(mark1+mark11,mark2+mark22) max(mark1+mark11,mark2+mark22)]*0.5; for ll=2:length(mov); L=wiener2(mov(ll).cdata,[5 5]); [vali,pos,posinv]=multiple_position_image1(L,ix,iy,length(ix)); multiple_position_image1 function [c,pos1,pos2]=multiple_position_image(ima,xi,yi,num) c=improfile(ima,xi,yi,num); [val1,pos1]=sort(c(2:end)-c(1:end-1)); [val2,pos2]=sort(c(2:end)-c(1:end-1),'descend'); return

(3)

i0in=1; while(abs(mark1(ll-1)-ix(posinv(i0in)))>5) ll i0in=i0in+1; end mark1(ll)=ix(posinv(i0in)); i0in=1; while(abs(mark2(ll-1)-ix(posinv(i0in)))>5) i0in=i0in+1; end mark2(ll)=ix(posinv(i0in)); val=abs(mark1(ll)-mark2(ll));i0=i0in; while val<60 i0=i0+1; mark2(ll)=ix(posinv(i0)); val=abs(mark1(ll)-mark2(ll)); end i0in=1; while(abs(mark11(ll-1)-ix(pos(i0in)))>5) i0in=i0in+1; end mark11(ll)=ix(pos(i0in)); i0in=1; while(abs(mark22(ll-1)-ix(pos(i0in)))>5) i0in=i0in+1; end mark22(ll)=ix(pos(i0in)); val=abs(mark11(ll)-mark22(ll));i0=i0in; while val<60 i0=i0+1; mark22(ll)=ix(pos(i0)); val=abs(mark11(ll)-mark22(ll)); end if(abs(mark11(ll)-mark1(ll))>100) duffy=mark11(ll); mark11(ll)=mark22(ll); mark22(ll)=duffy(ll); end misura(ll,:)=[min(mark1(ll)+mark11(ll),mark2(ll)+mark22(ll)) max(mark1(ll)+mark11(ll),mark2(ll)+mark22(ll))]*0.5; end return

Calcolo della deformazione in trazione

% caricare unita

% modificare spostamento_traz

% modificare il nome per il salvataggio

(4)

u=input('risoluzione unita:'); f=input('risoluzione immagine:'); h=u/f;

figure

plot(posizioni)

title('Posizione dei marker') xlabel('frame')

ylabel('posizione(mm)')

legend('marker sx','marker dx')

distanza=[(posizioni(:,2)-posizioni(:,1))./unita]*h; figure

plot(distanza)

title('Distanza tra i marker') xlabel('frame')

ylabel('distanza(mm)')

save traz3

Compressione

Valutazione dell’area del provino

% cambiare nome immagine % caricare unità

% cambiare nome salvataggio

L=imread('area_compr3_50X.bmp'); L=wiener2(L,[5 5]); imshow(L); [ix,iy,mis]=improfile; figure plot(mis) figure plot(mis(2:end)-mis(1:end-1)) pause

p1=input('picco destro:'); p2=input('picco sinistro:');

u=input('risoluzione unita:'); f=input('risoluzione immagine:'); H=u/f;

area=pi*((((p2/unita-p1/unita)/2)*H)^2);

save area_compr3 area

Valutazione dello spessore iniziale del provino

(5)

% caricare unità

% cambiare nome salvataggio

L=imread('spess_compr3_150X.bmp'); L=wiener2(L,[5 5]); imshow(L); [ix,iy,mis]=improfile; figure plot(mis) figure plot(mis(2:end)-mis(1:end-1)) pause

pd=input('picco destro:'); ps=input('picco sinistro:');

u=input('risoluzione unita:'); f=input('risoluzione immagine:'); H=u/f;

thick=(sqrt((ix(pd)-ix(ps))^2+(iy(pd)-iy(ps))^2)/unita)*H;

save thick_compr3 thick

Inseguimento dei punti di riferimento

% cambiare nome al file filmato % salvare

% mettere pointbreak in 19

function misura=spostamento_compr

mov=aviread('compr3_50X.avi') % nome file filmato

L=wiener2(mov(1).cdata,[5 5]); imshow(L) [ix,iy,mis]=improfile; [vali,pos,posinv]=multiple_position_image1(L,ix,iy,length(ix)); posinv(1) pos(1) figure plot (mis(2:end)-mis(1:end-1)) i0in=1; mark1(1)=ix(posinv(i0in)); i0in=1; mark11(1)=ix(pos(i0in)); misura(1,:)=[mark1(1) mark11(1)]; for ll=2:length(mov); ll

(6)

L=wiener2(mov(ll).cdata,[5 5]); [vali,pos,posinv]=multiple_position_image1(L,ix,iy,length(ix)); i0in=1; while(abs(mark1(ll-1)-ix(posinv(i0in)))>5) i0in=i0in+1; end mark1(ll)=ix(posinv(i0in)); i0in=1; while(abs(mark11(ll-1)-ix(pos(i0in)))>5) i0in=i0in+1; end mark11(ll)=ix(pos(i0in)); misura(ll,:)=[mark1(ll) mark11(ll)]; end return

Calcolo della deformazione in compressione

% caricare unita

% caricare thick corrispondente % modificare spostamento_compr

% modificare il nome per il salvataggio

posizioni=spostamento_compr;

u=input('risoluzione unita:'); f=input('risoluzione immagine:'); h=u/f;

figure

plot(posizioni)

title('Posizione dei marker') xlabel('frame')

ylabel('posizione')

legend('marker sx','marker dx')

tip=(((posizioni(1,2)-posizioni(1,1))/unita)*h-thick);

spessore=[(((posizioni(:,2)-posizioni(:,1))/unita)*h-tip)]; figure

plot(spessore)

title('Spessore campione') xlabel('frame')

ylabel('spessore(mm)')

Riferimenti

Documenti correlati

..concentrazione rispetto al raggio agli elementi 7 e 8,che sono quelli piu`

xlabel('Distanza dal Bordo / semimpronta [Log]') ylabel('Pressione di Contatto / pres hertziana massima') grid on..

Per gli isotopi considerati “importanti” da MONTEBURNS e per i quali non è presente un identificatore in questo file viene prodotto un warning per indicare che non sono state

Il file per calcolare l’andamento delle prestazioni propulsive in funzione della pressione nel serbatoio nel caso di utilizzo del venturi cavitante è stato

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global scheletro; global xc; global yc; global

% rapporto di frequenza con la sinusoide modulante K=100; % vettore lineare data_x=linspace(x1,x2,N); x=data_x; data_x=x'; % funzione portante data_zp=sin(2*pi*f*data_x);

Analisi della connettività e costruzione del grafo Una volta ottenuta la matrice delle adiacenze, il vettore delle connettività e la connettività media vengono calcolati

%funzione;l'operazione (di ottimizzazione) è stata effettuata due %volte per visualizzare in maniera ottimale i