guofei9987 / blind_watermark

Blind&Invisible Watermark ,图片盲水印,提取水印无须原图!

Home Page:https://blindwatermark.github.io/blind_watermark/#/en/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

水印加密

foxkw opened this issue · comments

commented

为啥看embed的代码中,加密完又接着解密, 那不是白加了吗?
`def block_add_wm_slow(self, arg):
block, shuffler, i = arg
# dct->(flatten->加密->逆flatten)->svd->打水印->逆svd->(flatten->解密->逆flatten)->逆dct
wm_1 = self.wm_bit[i % self.wm_size]
block_dct = dct(block)

    # 加密(打乱顺序)
    block_dct_shuffled = block_dct.flatten()[shuffler].reshape(self.block_shape)
    u, s, v = svd(block_dct_shuffled)
    s[0] = (s[0] // self.d1 + 1 / 4 + 1 / 2 * wm_1) * self.d1
    if self.d2:
        s[1] = (s[1] // self.d2 + 1 / 4 + 1 / 2 * wm_1) * self.d2

    block_dct_flatten = np.dot(u, np.dot(np.diag(s), v)).flatten()
    block_dct_flatten[shuffler] = block_dct_flatten.copy()
    return idct(block_dct_flatten.reshape(self.block_shape))   # 逆dct`