def _decompose(self): if self.is_empty: data_ll, data_lh, data_hl, data_hh = None, None, None, None else: data_ll, (data_lh, data_hl, data_hh) = dwt2(self.data, self.wavelet, self.mode) self._create_subnode(self.LL, data_ll) self._create_subnode(self.LH, data_lh) self._create_subnode(self.HL, data_hl) self._create_subnode(self.HH, data_hh) return self._get_node(self.LL), self._get_node(self.LH), self._get_node(self.HL), self._get_node(self.HH)
def _decompose(self): if self.is_empty: data_ll, data_lh, data_hl, data_hh = None, None, None, None else: data_ll, (data_lh, data_hl, data_hh) = dwt2(self.data, self.wavelet, self.mode) self._create_subnode(self.LL, data_ll) self._create_subnode(self.LH, data_lh) self._create_subnode(self.HL, data_hl) self._create_subnode(self.HH, data_hh) return self._get_node(self.LL), self._get_node( self.LH), self._get_node(self.HL), self._get_node(self.HH)
def wavedec2(data, wavelet, mode='sym', level=None): """ Multilevel 2D Discrete Wavelet Transform. data - 2D input data wavelet - wavelet to use (Wavelet object or name string) mode - signal extension mode, see MODES level - decomposition level. If level is None then it will be calculated using `dwt_max_level` function . Returns coefficients list - [cAn, (cHn, cVn, cDn), ... (cH1, cV1, cD1)] """ data = as_float_array(data) if len(data.shape) != 2: raise ValueError("Expected 2D input data.") if not isinstance(wavelet, Wavelet): wavelet = Wavelet(wavelet) if level is None: size = min(data.shape) level = dwt_max_level(size, wavelet.dec_len) elif level < 0: raise ValueError("Level value of %d is too low . Minimum level is 0." % level) coeffs_list = [] a = data for i in xrange(level): a, ds = dwt2(a, wavelet, mode) coeffs_list.append(ds) coeffs_list.append(a) coeffs_list.reverse() return coeffs_list
def wavedec2(data, wavelet, mode='sym', level=None): """ Multilevel 2D Discrete Wavelet Transform. data - 2D input data wavelet - wavelet to use (Wavelet object or name string) mode - signal extension mode, see MODES level - decomposition level. If level is None then it will be calculated using `dwt_max_level` function . Returns coefficients list - [cAn, (cHn, cVn, cDn), ... (cH1, cV1, cD1)] """ data = as_float_array(data) if len(data.shape) != 2: raise ValueError("Expected 2D input data.") if not isinstance(wavelet, Wavelet): wavelet = Wavelet(wavelet) if level is None: size = min(data.shape) level = dwt_max_level(size, wavelet.dec_len) elif level < 0: raise ValueError( "Level value of %d is too low . Minimum level is 0." % level) coeffs_list = [] a = data for i in xrange(level): a, ds = dwt2(a, wavelet, mode) coeffs_list.append(ds) coeffs_list.append(a) coeffs_list.reverse() return coeffs_list