-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrech2.m
More file actions
58 lines (48 loc) · 1.33 KB
/
rech2.m
File metadata and controls
58 lines (48 loc) · 1.33 KB
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
% Funzione: ricostruzione diadica con wavelet Haar di un immagine dati gli
% IN: A=approssimaz livello precedente
% Dh=dettaglio orizz
% Dv=verticale
% Dd= diagonale
% lo=filtro di ricostruzione passa basso
% hi=filtro ricostruzione passa alto
function [app]=rech2(A,Dh,Dv,Dd,lo,hi)
s1=size(A,1);
s2=size(A,2);
l=length(lo);
h=length(hi);
A=dyadup(A,'r',1);
Dh=dyadup(Dh,'r',1);
%è cambiato il numero di righe
tempap=zeros(size(A,1)+l-1,s2);
tempdh=zeros(size(Dh,1)+l-1,s2);
for v=1:s2
tempap(:,v)=conv(A(:,v),lo);
tempdh(:,v)=conv(Dh(:,v),hi);
end
%è cambiato il numero delle righe di interesse, dopo l'upsample
temp1=tempap+tempdh;
temp1=dyadup(temp1,'c',1); %ora è cambiato anche il numero di colonne
temp4=zeros(size(temp1,1),size(temp1,2)+l-1);
for i=1:size(temp1,1) %per ogni riga
temp4(i,:)=conv(temp1(i,:),lo);
end
%temp4 è pronta
%ora i dettagli verticali e diagonali
Dv=dyadup(Dv,'r',1);
Dd=dyadup(Dd,'r',1);
tempdv=zeros(size(Dv,1)+l-1,s2);
tempdd=zeros(size(Dd,1)+l-1,s2);
for v=1:s2
tempdv(:,v)=conv(Dv(:,v),lo);
tempdd(:,v)=conv(Dd(:,v),hi);
end
temp2=tempdv+tempdd;
temp2=dyadup(temp2,'c',1);
temp3=zeros(size(temp2,1),size(temp2,2)+h-1);
for i=1:size(temp2,1) %per ogni riga
temp3(i,:)=conv(temp2(i,:),hi);
end
%ho anche temp3
temp5=temp3+temp4;
%ritaglio
app=wkeep(temp5,[s1*2,s2*2]);