# 前言
已经好久没写博客了,最近是在有些忙,但是忙里偷闲写一篇新学的知识点,所以准备写这篇博客与大家分享。这篇博文是关于信息安全中的一个简单算法:LSB(最低有效位)算法实现图片数字水印隐写功能,就是如何将我们的水印图片嵌入到主体图像中,其中源码已经上传至GitHub(如上所示),各位读者可以下载使用。其中不仅包括算法源码还有可视化图形界面的代码,方便读者调试使用。废话不多说,下面开始本篇博文的具体内容。
# 一、图像处理基础
1. 图像的分类
我们日常生活中的图像大致分为三类:黑白图像、灰度图像、彩色图像
![在这里插入图片描述](https://img-blog.csdnimg.cn/1903cc46d6234170bed0d7e705cb2ef3.png)
2. 二进制图像
二进制图像顾名思义就是图像像素只存在0,1两个值。一个二进制图像显然是纯黑白的。每一个像素值将取两个离散值(0或1)中的一个,0表示黑,1表示白。
![在这里插入图片描述](https://img-blog.csdnimg.cn/c12a128fe08f4d7ab078878d6637e0a0.png)
3. 灰度图像
灰度图像是每个像素只有一个采样颜色的图像。这类图像通常显示为从最暗黑色到最亮的白色的灰度。一般 使用使用无符号8位整型表示
![在这里插入图片描述](https://img-blog.csdnimg.cn/b2c7f31f8721444aacb307eacbd9e3ef.png)
4. 灰度图像的二维矩阵表示
①:本张图片为一张灰度图片,我们要将其转换为二进制代码表示的矩阵形式,可以使用MatLab或者Python进行处理,在这里我使用MatLab读取图片:A=imread(\`background.bmp\`);
②:下图为读取后的灰度图像对应的二维矩阵,可以看到都是由0-255的数字组成,只有一个通道
![在这里插入图片描述](https://img-blog.csdnimg.cn/eb1331052f6943bb94e62596e1c1747b.png)
5. 灰度图像的二值化方法
所谓灰度图像的二值化方法实际上解决的就是将灰度图像转换为二值图像(黑白图像)这一问题。转换的方法可用伪C语言描述为:
```c
设 G(x,y) 为图像的灰度G的像素
float threshold; //定义一个转换阈值
if (G(x,y) >=threshold)
B(x,y)=1;
else
B(x,y)=0;
```
则下图为G的二值转换图。
![在这里插入图片描述](https://img-blog.csdnimg.cn/74526b4a34674d399ed05a0a8d0ec386.png)
6. RGB图像
RGB图像仅是一类图像的总称,每一个像素的颜色由存储在相应位置的红、 绿、蓝颜色分量共同决定。RGB图像是 24位图像,红、绿、蓝分量分别占用8位,理论上可以包含16M种不同颜色,由于这种颜色精度能够再现图像的真实色彩, 所以又称RGB图像为真彩图像。
![在这里插入图片描述](https://img-blog.csdnimg.cn/d48b57788308494aa5618a4439f79386.png)
7. RGB的表示
我们可以用一个由R、G、B为坐标轴定义的单位立方体来描述一个符合视觉理论的颜色模型。 原点代表黑色,(1,1,1)代表白色,将坐标轴上的顶点称为基色。立方体中的每一个颜色由一个三元组(R,G,B)表示,每一个分量的数值一般在[0,255]区间,每个位置代表不同的颜色,如下两图表示。
![在这里插入图片描述](https://img-blog.csdnimg.cn/3604876e296344d9b5875321891cb2fd.png)
# 二、LSB数字隐写算法
1. LSB简介
空域图像水印技术是指在图像的空间域中嵌入水印的技术。 最简单和有代表性的方案就是用秘密信息代替图像的最低有效位(LSB)或者多个位平面的所有比特的算法。 LSB(Least Significant Bits)算法:将秘密信息嵌入到载体图像像素值的最低有效位。如下图,我们可以将其每八位的最后一位替换成我们的秘密信息,也就完成了信息隐写的过程。
![在这里插入图片描述](https://img-blog.csdnimg.cn/17d1e37146ba414298bd53eddb1544b9.png)
2. LSB原理
①:LSB隐写原理源于图片中的像素一般是由三种颜色组成,即三原色(红绿蓝),由这三种原色可以组成其他各种颜色,在PNG图片的存储中,每个颜色占有8bit,即有256种颜色,一共包含256的三次方颜色,即16777216中颜色,人类的眼睛可以区分约1000万种不同的颜色,剩下无法区分的颜色就有6777216,当我们把其中一些信息改变,图片只发生位变化(取最低位,权值最小),而人是觉察不到这种变化的,当时里面的信息却发生了变化,这样就实现了我们的数字隐写功能。PNG图片格式和BMP图片格式都是一种无损压缩,LSB隐写就是修改了像素中的最低位缩的图片上实现LSB隐写,如果是JPG图片,就没办法使用LSB隐写了,因为其是有损压缩。
②:例如,10进制的235表示的是绿色,我们修改二进制中的最低位,颜色依旧看不出有什么变化,还能保存我们的秘密水印,从而达到隐藏信息的目的
![在这里插入图片描述](https://img-blog.csdnimg.cn/7438796b3c2d427687dfd6fb5a97b62c.png)
3. LSB流程
![在这里插入图片描述](https://img-blog.csdnimg.cn/95ba28acd4d8469eb6d079add015b860.png)
4. LSB特点
- 方法有一般性,可用于变化域
- 非常简单
- 非常快
- 易于实现
- 很高的容量和嵌入效率
- LSB位是随机的,与高位和其他点无关
- 优化比较方便
# 三、LSB数字隐写算法实现
1. 初始化载体图像
![在这里插入图片描述](https://img-blog.csdnimg.cn/379c81cef529451c8a7faf8ee7816e71.png)
2. 初始化水印图像
![在这里插入图片描述](https://img-blog.csdnimg.cn/135336e53d00484c82038ad1d93a7cd7.png)
3. 嵌入水印
![在这里插入图片描述](https://img-blog.csdnimg.cn/b2143588f4294ee78c9ad978c791d464.png)
4. 提取已嵌入水印
![在这里插入图片描述](https://img-blog.csdnimg.cn/a974f3178a49424085d397037f1d9ada.png)
# 四、数字隐写和提取过程
1. 运行image_processing_interface.m进入主界面
![在这里插入图片描述](https://img-blog.csdnimg.cn/b5360f6ebeca411385a122e357c688b8.png)
2. 载入宿主图片
![在这里插入图片描述](https://img-blog.csdnimg.cn/c07b5c7369824e1690a647d669b987c7.png)
3. 载入水印图片
![在这里插入图片描述](https://img-blog.csdnimg.cn/bf5f62e89e314368a171580db0941770.png)
4. 嵌入水印后的宿主图片
![在这里插入图片描述](https://img-blog.csdnimg.cn/b71f95afefb04982863869ee6da9843b.png)
5. 提取到的水印图片
![在这里插入图片描述](https://img-blog.csdnimg.cn/c714ea23f8c844f2accf9aa80c14e20b.png)
6. 二值化后的水印图片
![在这里插入图片描述](https://img-blog.csdnimg.cn/6ec0c695fff44e9b919d57e1dda16da1.png)
# 总结
到此为止这篇博文也告一段落了,这个算法作为信息安全技术的入门算法,还是比较简单易学的,以后我可能会写更多的关于信息安全方面的博客,因为也准备好好学学这个方向,所以请各位读者敬请期待!
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于MatLab实现LSB(最低有效位)算法完成图片数字水印隐写功能源码+详细文档+全部数据(高分课设),含有代码注释,满分课设大作业资源,新手也可看懂,期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 基于MatLab实现LSB(最低有效位)算法完成图片数字水印隐写功能源码+详细文档+全部数据(高分课设)基于MatLab实现LSB(最低有效位)算法完成图片数字水印隐写功能源码+详细文档+全部数据(高分课设)基于MatLab实现LSB(最低有效位)算法完成图片数字水印隐写功能源码+详细文档+全部数据(高分课设)基于MatLab实现LSB(最低有效位)算法完成图片数字水印隐写功能源码+详细文档+全部数据(高分课设)基于MatLab实现LSB(最低有效位)算法完成图片数字水印隐写功能源码+详细文档+全部数据(高分课设)基于MatLab实现LSB(最低有效位)算法完成图片数字水印隐写功能源码+详细文档+全部数据(高分课设)基于MatLab实现LSB(最低有效
资源推荐
资源详情
资源评论
收起资源包目录
基于MatLab实现LSB(最低有效位)算法完成图片数字水印隐写功能源码+详细文档+全部数据(高分课程设计).zip (10个子文件)
main
LSB_Decode.m 508B
LSB_Encode.m 908B
image_processing_interface.m 7KB
background.bmp 23KB
main.m 1KB
SmallPig.bmp 598KB
WatermarketImg.bmp 257KB
lena.bmp 768KB
image_processing_interface.fig 58KB
README.md 7KB
共 10 条
- 1
资源评论
yava_free
- 粉丝: 2898
- 资源: 1262
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java Web的怀旧唱片售卖系统+vue
- 基于ARM的疲劳检测系统研究与实现.doc
- JVM面试专题,非常版
- Google Chrome浏览器ChromeDriver驱动下载(Chrome版本:130.0.6723.92)win64
- Google Chrome浏览器ChromeDriver驱动下载(Chrome版本:130.0.6723.92)win32
- 基于龙芯3号的UEFI固件开发详解
- 车载终端市场:2023年中国车载终端市场规模已攀升至约185亿元,智领未来出行新风尚
- 中间件面试全集,非常棒
- 阅微文学网站的设计与开发+vue
- 基于C++及Qt5开发的图片自动矢量化软件+高分辨率图像去噪+自动矢量化为svg/shp矢量图+不限定颜色种类和数量(高分项目)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功