当前位置: 首页 > article >正文

小波变换背景预测matlab和python, pytorch样例

小波变换使用matlab和python或Pytorch

注意1d和2d的函数区别。注意默认参数问题。最终三个版本结果能够对齐。

matlab

load('wave_in.mat')
% res: image of 1536 x 1536

dlevel=7;
wavename='db6';

[m,n] = wavedec2(res, dlevel, wavename);

vec = zeros(size(m));
vec(1:n(1)*n(1)*1) = m(1:n(1)*n(1)*1);

background =  waverec2(vec, n, wavename);
background(background<0.001)=0;

python version1

import time
import torch
from mat_utils import load_mat
import numpy as np
import pywt
import copy

data_dict = load_mat("test_data/wave_in.mat")
res = data_dict["res"]
# res: image of 1536 x 1536

wavename = 'db6'
dlevel = 7
wavelet = pywt.Wavelet(wavename )

coeffs_py = pywt.wavedec2(res, wavename, level=dlevel)

# keep fist one and zero all others
for i in range(1, len(coeffs_py)):
    sub_coefs = list(coeffs_py[i])
    sub_coefs = [np.zeros_like(tensor) for tensor in sub_coefs]
    coeffs_py[i] = sub_coefs

background_py = pywt.waverec2(coeffs_py, wavename)

python version2 with pytorch

使用库

https://github.com/v0lta/PyTorch-Wavelet-Toolbox

import time
import torch
from mat_utils import load_mat
import numpy as np
import pywt
import ptwt
# pip install ptwt

data_dict = load_mat("test_data/wave_in.mat")
res = data_dict["res"]
# res: image of 1536 x 1536
data_torch = torch.from_numpy(res)

wavename = 'db6'
dlevel = 7
wavelet = pywt.Wavelet(wavename)

coeffs_pt = ptwt.wavedec2(data_torch, wavelet, level=dlevel, mode='symmetric')

coeffs_pt = list(coeffs_pt)
# keep fist one and zero all others
for i in range(1, len(coeffs_pt)):
    sub_coefs = list(coeffs_pt[i])
    sub_coefs = [torch.zeros_like(tensor) for tensor in sub_coefs]
    coeffs_pt[i] = tuple(sub_coefs)

coeffs_pt = tuple(coeffs_pt)
background_pt = ptwt.waverec2(coeffs_pt, wavelet).squeeze()

background_pt_np = background_pt.numpy()


http://www.kler.cn/a/563716.html

相关文章:

  • Go红队开发—并发编程
  • liunx安装redis并配置主从
  • 【Java项目】基于Spring Boot的考研资讯平台
  • 若依 ruoyi-vue 根据角色切换路由菜单权限 SAAS
  • lowagie(itext)老版本手绘PDF,包含页码、水印、图片、复选框、复杂行列合并、行高设置等。
  • https:原理
  • DevOps全流程
  • 【红队利器】单文件一键结束火绒6.0
  • 【Python网络爬虫笔记】14-使用代理绕过访问限制
  • 生成GeoJson文件,Cesium@1.126.0中使用CZML,动态设置高度,动态设置颜色
  • 大语言模型(LLM)微调技术笔记
  • Android-创建mipmap-anydpi-v26的Logo
  • 【SpringMVC】十分钟跑起来一个SpringMVC项目
  • 逻辑函数的神经网络实现
  • DeepSeek-R1-Zero:基于基础模型的强化学习
  • Element UI日期选择器默认显示1970年解决方案
  • 生成SQL的模型与工具
  • 【LeetCode刷题记录】79. 单词搜索(JS解法)
  • 《机器学习数学基础》补充资料:从几何角度理解矩阵
  • Orcale、MySQL中左连接,右连接,内连接的区别以及运用场景系列04(运用场景、左右表关系)