blind watermark 盲水印技術實現,這裡主要引用網上三種java實現的效果測試和研究。可以將文字隱藏在圖片中,通過提取還原水印,實現版本保護效果。 開源代碼: https://gitee.com/chejiangyi/shuiyin/tree/master ...
gitee 開源代碼(java)
https://gitee.com/chejiangyi/shuiyin/tree/master需求概述
研究盲水印對於版權保護的效果和能力研究嘗試概述
水印實現: 大部分的python或者java演算法都基於頻域的盲水印效果。 涉及的演算法: 傅里葉變換。 開源相關: 大部分是python演算法居多,也有java的一些傅里葉實現,少部分其他語言實現。 涉及的框架: opencv (用來處理圖片)圖片盲水印方式
1. 二維碼(本質是圖片) 盲水印(未嘗試) 2. 圖片盲水印(初步嘗試,未深入,初步效果不佳) 3. 文本盲水印(已嘗試) 圖片盲水印:初步嘗試一個傅里葉演算法,發現在截圖等複雜場景干擾下,似乎沒有文本盲水印抗干擾能力強;但是沒有深入印證其他多種演算法效果。 文本盲水印:經過幾輪嘗試,發現文本盲水印會效果好,但是在一些場景下圖片會有一些失真(對比原圖),色澤會變淺。 在其他抗干擾(截圖,縮放,塗改)情況下效果還可以。圖片失真的情況,在不同傅里葉演算法中,效果不一樣,有些不失真,但是效果抗干擾能力差。文本盲水印嘗試詳解
一. 目前java 有三種demo沉澱
第一種: 第二種:第三種:
整體演算法代碼行不多,核心在於演算法本身,具體演算法實現原理網上論文很多,但是真正能商用的效果不好。 dct 一般用於圖片演算法,dft 一般用於文本演算法,當然文本也可以以圖片的方式顯示中文。 三種總體效果都差不多,但是在干擾情況下差異還是很大的。 引用網上的一段盲水印的註意點描述: 目前沒有用真實的圖片效果和實際場景做測試,從而排除額外的一些情況,所以沒辦法確定真實的場景是否有效,或者是否可以規避一些不可能存在的實際場景。初步與產品確認,測試效果還可以,但不是很理想,比如一些截圖30%,20%的情況下,部分圖片信息無法有效還原“盲水印”。一些非原圖處理(比如採用微信和飛書截圖)之後,圖片變成jpg壓縮,此時盲水印可能無法有效還原檢測,原圖或者加水印後的圖儘量都使用png或者bmp。加水印後,圖片會有略微明顯的色澤變化(但是其中有些演算法好像變化不大,沒有大範圍細節測試,但是這種情況帶來抗干擾能力差較多)。