論文實作篇在這邊:https://iris123321.blogspot.com/2017/05/finding-optimal-least-significant-bit.html
Data hiding in image是指將secret image藏於cover image底下,就是將秘密藏於一張圖片底下,最貼近生活的例子如恐怖組織在傳遞訊息時,把機密藏在一張普通的照片底下,這樣就算被攔截也不會被發現,這時候,許多人就開始在想,那可以將一張圖片藏於一張圖片底下嗎?其實如果允許圖片失真的情況下,真的可以。
在電腦中,每一個像素(pixel)都是由RGB(red,green,blue)所組成,各占8bits,讓我們來看看如果拋棄幾個8bit中的後面幾個bit會發生什麼事
上面那張圖就可以發現,如果將R後四個bit給刪除,其實沒仔細看是看不太出來的,而刪除後面比較不重要的bit的方法稱為simple LSB (Least Significant Bit,最低有效位元),利用人眼對於色彩的敏感度:Green>Red>Blue,來實作data hiding,做法如下圖
要將Secret image藏於cover image中,得到stego image:
- secret_R的前4個bits取代cover_R後4個bits得到stego_R,
- secret_G的前5個bits取代cover_G後5個bits得到stego_G,
- secret_R的前3個bits取代cover_B後3個bits得到stego_B,
左上(cover image)、右上(secret image)、左下(stego image)、右下(decode image) |
解碼程式:
input:stego.raw
output:decode2.raw
最後,祝大家有個美好的聖誕節~ 😄😄😄
作者已經移除這則留言。
回覆刪除作者您好,不好意思我是剛接觸的初學者,有些問題想請教您~
回覆刪除請問一定要用RAW的圖檔嗎?
我將您的程式執行後結合的stego.raw開不起來QQ
謝謝您
hi andrea,
刪除raw 是未經壓縮的圖檔,所以可以直接對pixel 做動作,不需要先解壓縮
但能支援這個圖檔的軟體很少,例如photoshop
如果其他格式圖檔ex JPG PNG,可以使用openCV或matlab來實作,有現成函數能做格式預處理