<s> import math <EOL> import numpy as np <EOL> from wavelet import dwt3D <EOL> from wavelet import idwt3D <EOL> def hsm ( fimau , fimao ) : <EOL> '''<STR_LIT>''' <EOL> s = fimau . shape ; <EOL> p = [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] <EOL> p [ <NUM_LIT:0> ] = <NUM_LIT:2> ** math . ceil ( math . log ( s [ <NUM_LIT:0> ] , <NUM_LIT:2> ) ) <EOL> p [ <NUM_LIT:1> ] = <NUM_LIT:2> ** math . ceil ( math . log ( s [ <NUM_LIT:1> ] , <NUM_LIT:2> ) ) <EOL> p [ <NUM_LIT:2> ] = <NUM_LIT:2> ** math . ceil ( math . log ( s [ <NUM_LIT:2> ] , <NUM_LIT:2> ) ) <EOL> pad1 = np . zeros ( ( p [ <NUM_LIT:0> ] , p [ <NUM_LIT:1> ] , p [ <NUM_LIT:2> ] ) ) ; <EOL> pad2 = np . zeros ( ( p [ <NUM_LIT:0> ] , p [ <NUM_LIT:1> ] , p [ <NUM_LIT:2> ] ) ) ; <EOL> pad1 [ : s [ <NUM_LIT:0> ] , : s [ <NUM_LIT:1> ] , : s [ <NUM_LIT:2> ] ] = fimau ; <EOL> pad2 [ : s [ <NUM_LIT:0> ] , : s [ <NUM_LIT:1> ] , : s [ <NUM_LIT:2> ] ] = fimao ; <EOL> af = np . array ( [ [ <NUM_LIT:0> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT:0> , <NUM_LIT> ] , <EOL> [ - <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ - <NUM_LIT> , - <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:0> ] ] ) ; <EOL> sf = np . array ( af [ : : - <NUM_LIT:1> , : ] ) <EOL> w1 = dwt3D . dwt3D ( pad1 , <NUM_LIT:1> , af ) ; <EOL> w2 = dwt3D . dwt3D ( pad2 , <NUM_LIT:1> , af ) ; <EOL> w1 [ <NUM_LIT:0> ] [ <NUM_LIT:2> ] = w2 [ <NUM_LIT:0> ] [ <NUM_LIT:2> ] <EOL> w1 [ <NUM_LIT:0> ] [ <NUM_LIT:4> ] = w2 [ <NUM_LIT:0> ] [ <NUM_LIT:4> ] <EOL> w1 [ <NUM_LIT:0> ] [ <NUM_LIT:5> ] = w2 [ <NUM_LIT:0> ] [ <NUM_LIT:5> ] <EOL> w1 [ <NUM_LIT:0> ] [ <NUM_LIT:6> ] = w2 [ <NUM_LIT:0> ] [ <NUM_LIT:6> ] <EOL> fima = idwt3D . idwt3D ( w1 , <NUM_LIT:1> , sf ) ; <EOL> fima = fima [ : s [ <NUM_LIT:0> ] , : s [ <NUM_LIT:1> ] , : s [ <NUM_LIT:2> ] ] ; <EOL> return fima </s>
