2017-03-07 13 views
1

나는 다음과 같이 한 수준의 데시 메이션 웨이블릿 파이썬에서 패키지 pywavelets에서 함수 swtn를 사용하여 3D NumPy와 배열에 변환을 적용하기 위해 노력했습니다 :한 수준

에러 상승
import numpy as np 
from pywavelts import swtn 

img = np.random.rand(4,4,5) 
WT = swtn(img, 'coif1', level = 1, start_level = 0) 

:

Traceback (most recent call last): 

    File "<ipython-input-60-1f6f4144a239>", line 1, in <module> 
    pywt.swtn(img, 'coif1', level=1, start_level =0, axes=None) 

    File "/usr/local/lib/python2.7/dist-packages/pywt/_swt.py", line 387, in swtn 
    axis=axis)[0] 

    File "pywt/_extensions/_swt.pyx", line 100, in pywt._extensions._swt.swt_axis (pywt/_extensions/_swt.c:6203) 

    File "pywt/_extensions/_swt.pyx", line 116, in pywt._extensions._swt.swt_axis (pywt/_extensions/_swt.c:5035) 

ValueError: start_level must be less than 0. 

그러나,이 0보다 작은 시작 레벨 값 때문에 저 의미가 없다는 웨이블릿 분해에 의해 허용되지 않는다. 누군가가 외모를 가지고 내가 놓친 것을 지적 할 수 있었습니까?

답변

0

방금 ​​같은 오류가 발생했습니다. 그것은 당신이 사용하는 배열의 크기 때문이다 : 그것은 2로 나누어되지 않기 때문에,이 함수에 의해 주어진 레벨의 최대 수 :

pywt.swt_max_level 

이는, 예를 들어 0입니다 :

img = np.random.rand(4,4,6) 
WT = swtn(img, 'coif1', level = 1, start_level = 0) 

이 저에게 효과적입니다.