Haar 一維小波轉換 Haar Wavelet Transform 1D

圖像相關 andy 3年前 (2021-06-07) 1134次浏览 已收录 0个评论 扫描二维码

Haar 一維小波轉換 Haar Wavelet Transform 1D

以下是 Haar 一維小波轉換,原本要用於感知雜湊,但還無法使用此函數直接計算2D的陣列。

def haarDWT (data, level):

    s = 0.5                  # 每次取兩數的平均值,即 0.5

    h = [1,  1]           # low-pass 低通濾波
    g = [1, -1]           # high-pass 高通濾波
    f = len(h)            # 濾波器的長度

    length = len(data)          # 資料的長度
    ret = np.zeros(length)            

    tmp = np.array(data)

    for i in range(level):

        ret[0:length] = [0] * length    
        l2 = length // 2                

        for j in range(l2):
            for k in range(f):
                ret[j]    += tmp[2*j + k] * h[k] * s
                ret[j+l2] += tmp[2*j + k] * g[k] * s

        length = l2             
        tmp[0:length] = ret[0:length]

    return ret

神隊友學長Andy , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Haar 一維小波轉換 Haar Wavelet Transform 1D
喜欢 (0)
[[email protected]]
分享 (0)
andy
关于作者:
中年大叔,打拼 like young students.
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址