我知道SciPy在scipy.signal.wavelets中有一些用于小波的信号处理工具,并且可以使用Matplotlib绘制图表,但似乎我无法正确使用它.我曾尝试在线性空间上绘制Daubechies小波,但这不是我想要的.一般来说,我对小波和数学非常不熟练.:)
我有一个EEG信号,我有兴趣在时域和频域分析它.我已经使用过scipy.signal.spectrogram函数,但我认为使用小波可以产生更好的特征提取结果.我尝试在人工信号上运行连续小波变换,我创建如下:
fs = 128.0
sampling_period = 1/fs
t = np.linspace(0, 2, 2*fs)
x = chirp(t,10,2,40,'quadratic')
coef, freqs = pywt.cwt(x, np.arange(1,50),'morl',
sampling_period=sampling_period)
Run Code Online (Sandbox Code Playgroud)
然后我绘制了coef矩阵:
plt.matshow(coef)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我的问题是如何调整比例和时间轴?
我正在尝试计算图像的能量。我想使用Python。我从网站上得到了一个解决方案,但有点令人困惑的是,发布问题的人告诉我,与 Matlab 相比,他的程序的输出是错误的。
我提到了这个链接, 我已经尝试了这两个代码,但给出了相同的答案。
import cv2
from pywt import dwt2
import pywt
import numpy as np
img=cv2.imread("/home/raviraj/PycharmProjects/Diabetic/SYMPTOMS/1369_right.jpeg")
im = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, (cH, cV, cD) = dwt2(im.T, 'db1')
# a - LL, h - LH, v - HL, d - HH as in matlab
Energy = (cH**2 + cV**2 + cD**2).sum()/im.size
print(Energy)
Run Code Online (Sandbox Code Playgroud)
此代码给出输出 0.5311041623967175 ,下一个代码是
im = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
m,n = im.shape
print(im.shape)
print(m)
print(n)
cA, (cH, cV, cD) = pywt.dwt2(im,'db1')
# a - LL, h - LH, v - …Run Code Online (Sandbox Code Playgroud) 使用Pyinstaller _cwt编译程序时,Pywt未正确导入模块。我验证了_cwt.py它存在于我的pywt根目录中(在路径上的站点包中)并且_cwt.pyd在pywt\_extensions目录中。我可以从Python成功导入pywt。下面是一个最小(非)工作示例,用于说明ImportError回溯。
程序 pywt_test.py
# -*- coding: utf-8 -*-
try:
import sys, traceback
import pywt
print pywt.__version__
except ImportError:
type_, value_, traceback_ = sys.exc_info()
e_msg = traceback.format_exception(type_, value_, traceback_)
with open('pywt_error_log.txt','w') as f:
f.write(''.join(e_msg))
Run Code Online (Sandbox Code Playgroud)
pyinstaller规范文件 pywt_test.spec
# -*- mode: python -*-
block_cipher = None
a = Analysis(['pywt_test.py'],
pathex=['C:\\Users\\user', 'C:\\Users\\user'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='pywt_test', …Run Code Online (Sandbox Code Playgroud)