• 當我以為那是一個知識點,其實那是一個知識圓

  • 雪崩時,沒有一片雪花覺得自己有責任

    Stanislaw Jerzy Lec

  • 遊戲運營
    如何讓玩家一直沉迷
    如何讓玩家拉幫結派
    如何讓玩家互相仇視
    如何讓玩家充值更多
    如何實現隱性的現金賭博和金幣交易

  • 遇事不決 量子力學

    量子社會學

    文昭論古論今

  • 有最壞的打算 做最好的準備 抱最大的希望

  • 好看的皮囊千篇一律 有趣的靈魂萬裡挑一

  • Raft PBFT

    Reliable, Replicated, Redundant, And Fault-Tolerant

    Practical Byzantine Fault Tolerant

  • 吃人一口,還人一斗 我思故我在

    字面上意思是說,受別人一點幫助,就要思考如何回報他更多。

    同義的:受人點滴,湧泉以報

    我覺得更值得更深入思考的是,

    當你輕易地要求別人的幫助時,你就得有心理準備,要返還十倍或更多。

    所以,當自己能做到,不輕易要求別人的幫忙。

    (說到這裡,小伙伴會覺得跟我以前說的”情感投入報酬”不一樣,情境不同暫不展開)

    這是台灣的俗語,用台語發音更有味道。

  • 瘋狂宇宙 我思故我在

    這個宇宙太瘋狂,大海掀翻了小池塘。

  • 區塊鏈是工具,要合理的使用;而非商品炒作。我思故我在

感知雜湊算法3 Wavelet Hashing

圖像相關 andy 4个月前 (06-07) 199次浏览 已收录 0个评论 扫描二维码

感知雜湊算法3 Wavelet Hashing

本次我們使用小波轉換 ( Wavelet Transform) 來計算感知雜湊。在圖像壓縮及圖像品質方面使用小波轉換的結果普遍要高於離散餘弦轉換,而在感知雜湊方面,則取決於在頻率域保留圖像特徵的能力。因此多種不同的小波轉換因為有不同的母波,對其轉換的波形也會有不同的結果。我們先以 Haar 小波轉換做感知雜湊測試,並且維持跟 ahash 及 phash 相同的步驟進行運算。

一、減少顏色
將圖像轉換為灰階。在改變大小前減少顏色的主要目的是增加效能。

二、減少尺寸
圖像尺寸並不影響最後的雜湊結果,因為只保留最後三階的結果。這個步驟也可以直接將圖片縮小為 8×8 。

三、計算DWT
我們使用 Haar 小波轉換,轉換後保留最後三階結果。

四、取中位數並計算
取結果的中位數,並進行與中位的比較,高的為1低的為0。

五、組合成雜湊值
和 aHash、pHash 相同,將64個結果組合成十六進制的字串,成為雜湊值。

python 程式如下

def whash(image, hash_size=8, mode='haar'):

    image_natural_scale = int(np.log2(image.shape[0]))
    img_size = 2**image_natural_scale

    ll_max_level = int(np.log2(img_size))
    level = int(np.log2(hash_size))
    dwt_level = ll_max_level - level

    image = transform.resize(image, (img_size, img_size))
    pixels = np.asarray(image)

    coeffs = pywt.wavedec2(pixels, mode, level=dwt_level)
    dwt_low = coeffs[0]

    med = np.median(dwt_low)
    diff = dwt_low > med
    return diff.flatten().astype(np.uint8)

在此以 haar 小波轉換做為測試,也可以改用其他小波轉換。在這段程式碼裡面,為了符合圖像轉換的比例,自動計算了應該縮放的尺寸。最後使用了跟之前一樣的8張圖片來比對,結果如下:

wavelet h1 h2 h3 h4 h5 h6 h7
h1 64 54 52 54 64 60 62
h2 54 64 50 58 54 54 54
h3 52 50 64 46 52 50 50
h4 54 58 46 64 54 52 54
h5 64 54 52 54 64 60 62
h6 60 54 50 52 60 64 60
h7 62 54 50 54 62 60 64

結論
經由測試的結果發現數據總結果比 pHash 來得好,這個符合我們的預期,但加總還是比 aHash 差。我們下次將使用最後一個 diffirence Hash 來進行測試,我們預期 dHash 的結果應該是最好的。


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

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

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