暗水印——空域:二值化圖像水印(看不見我吧 啦啦啦~)

引言

    隨着計算機和網絡技術的飛速發展,信息的安全保護問題日益突出。數字圖像、音頻和視頻等多媒體數字產品愈來愈需要一種有效的版權保護方法——水印技術,通常用於保護知識產權、防止未經授權的訪問、作弊等。
    廣義上可以把水印技術劃分爲四大類:圖像水印、視頻水印、音頻水印和文本水印。這些水印技術都有其獨特的特點和應用場景,需要根據具體的數字媒體保護需求進行選擇使用。

技術與實踐意義

    本文以“多通道、多層水印”爲目標,旨在讓操作人員通過自定義的方式,製作水印信息,深入體驗水印“添加”、“提取”的全過程,及水印抵抗攻擊手段後的“魯棒性”對比。

二值化圖像水印算法

水印添加

    1. 通過canvas將原圖轉化爲argb數組,同時用canvas繪製同等大小的水印圖像,同樣轉化爲argb數組; 
    2. 將原圖的argb中的red位置元素的最後一位捨去(red取值爲0~255)即偶數不變,奇數-1;
    3. 判斷水印圖像的同一像素點的元素的alpha的值是否爲0,不爲0說明當前像素點有文字像素存在, 將原圖的argb中的red位置元素的最後一位置爲1,即原值+1; 
    4. 將原圖的改變後的argb數組重新寫入canvas中並生成base64圖像。 

提取水印

    遍歷修改後的圖的argb數組,如果red位置爲奇數(最後一位爲1), 則將對應位置的水印像素點rgb置爲255,否則置爲0,alpha位置都是255, 然後將生成的水印argb數組通過canvas顯示在img中。

工程效果展示

水印的添加與提取

    本文以一個落地的簡易數字水印系統爲例。系統可以定義水印類型,上傳圖像、文本、音頻等,生成可見或不可見的水印,之後可以提取出水印信息。通過一些攻擊手段驗證水印算法的魯棒性,如PS等。
    用戶輸入用戶名及手機號,驗證通過後,即可進入系統界面,所添加的水印信息來源於用戶名及手機號,如下圖:

image.png

水印的魯棒性測驗

    用戶通過一些攻擊手段可以驗證水印算法的魯棒性,如PS等,主要有二十種攻擊操作的測試圖片,測試素材如下圖:

image.png

    這裏列舉暗水印——空域算法中圖像色相+20的攻擊實驗:

image.png
image.png

作者:京東物流 陳雨

來源:京東雲開發者社區

    以上是對系統操作的一個簡易步驟說明,此算法計算複雜度相對較低;對圖像視覺效果影響很小;但魯棒性較低,對比明水印,效果還是可觀的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章