论文阅读及实现图片隐写及评价算法过程

    xiaoxiao2023-11-15  154

    论文题目:企业网环境下基于空间域的大容量图像隐蔽传输系统设计探讨

    主要内容:

    1、设计了新的数字图像隐藏算法——适用于企业网络下的;

    2、分析数字图像常见隐藏算法在隐藏容量方面存在不足。

    新的概念:

    1、基于空间域的大容量图像隐藏算法分析

    LSB算法,最不重要位算法,技术原理:需要隐藏的信息替换到载体图像信息的低位,低位影响也不是很大,人们难以察觉这个信息的变化。

    2、在这个基础上改进的算法有哪些要求呢?

    主要是隐写后的图像视觉质量和秘密图像隐藏性两方面,其次对通用隐藏分析更加鲁棒。

    这里有说到图像隐藏之前呢采用像素匹配规则对图形进行预处理。不懂这个规则的人就很难去破译。

    3、秘密图像的嵌入和提取

    4、图像信息隐藏算法的评价

    主要从两个方面:

    1.视觉效果和隐藏容量

    据峰值信噪比(PSNR)来衡量图像的失真情况,其中的主要衡量指标就是均方根误差以及峰值信噪比。

    ①计算公式;②PSNR越大,一般大于38db,肉眼就不能分辨

    2.鲁棒性

    采用含密图像的抗剪切能力来分析,将含密图像去除一部分后再提取秘密图像,并分析秘密图像的隐藏效果。例如:在去除含密图像的5%、10%、20%、40%的情况下,分析提取出秘密图像的效果。

    5、载体图像的选择:

    里习惯性地选用灰度Lena图(256×256),

    对比改进算法的图像隐藏效果,可分别选取256×256、128×128的2个二值图像作为秘密图像

    6、结论

    可以实现的部分:

    0x01 准备图片

    一张载体(用灰度Lena图(256×256)),两张秘密图像(256×256、128×128的2个二值图像)

    0x02 生成含密图像和提取秘密图像

    #!/usr/bin/env python # -*- coding: utf-8 -*- #代码以synthetic.jpg为例,注意tire.jpg需要resize,但是论文里应该没有resize,目前还没有想到小尺寸隐藏在大尺寸图中的方法 from PIL import Image def hideInfoInImage(img,info): if img.mode !="RGBA": img =img.convert("RGBA")#如果不是RGB格式,转化为RGB格式 if info.mode !="L" and info.mode !="1": info =info.convert("L") img.putalpha(info) return img if __name__ == '__main__': img =Image.open("lean.jpg") band = Image.open("synthetic.jpg") img =hideInfoInImage(img,band) img.show()#可以看到,原图片没有明显变化 img.split()[3].show() #抽取出透明通道中的图片并显示 img1 = img.convert("RGB") img2 =img.split()[3].convert("RGB") img1.save("synthetic_in_lean.jpg") img2.save("synthetic_extracted.jpg")

    得到 含密图像和提取的秘密图像如图:

     

    tire图片同理可得:

     

    0x03 图像信息隐藏算法的评价

    1.视觉效果和隐藏容量——峰值信噪比(PSNR)

    #!/usr/bin/env python # -*- coding: utf-8 -*- #安装cv2 pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple import cv2 import numpy as np import math def psnr(img1, img2): mse = np.mean((img1/1.0 - img2/1.0) ** 2 ) if mse < 1.0e-10: return 100 return 10 * math.log10(255.0**2/mse) gt = cv2.imread('synthetic_in_lean.jpg') img= cv2.imread('lean.jpg') print(psnr(gt,img)) #36.129388920751595

    这里在计算得到tire.jpg的psnr值时,发现和synthetic.jpg计算得到的值是一样的,在怀疑是否是因为在将tire.jpg(128X128)隐藏在lean.jpg(256X256)中时resize使得两者得出的pnsr相同???这里提取出来的含密图像已经不是最初的tire.jpg(128X128)了,而是resize之后的tire.jpg(256X256),这里还需要进一步思考。

    2.鲁棒性——含密图像的抗剪切能力

    待更新……

    参考资料

    1.蔡正保. 企业网环境下基于空间域的大容量图像隐蔽传输系统设计探讨[J]. 河北北方学院学报(自然科学版), 2016, 32(9).

    2.PYthon神奇的黑科技之透明通道在一张图片上隐藏另一张图片 | 爱在灵灵久博客

    3.python-关于改变图片的大小-resize - LemonTree_Summer的博客 - 博客

    4.Python代码之计算PSNR - u010886794的博客 - 博客

     

    最新回复(0)