基于像素预测和位平面压缩的加密图像可逆数据隐藏附matlab代码(论文复现)

简介: 基于像素预测和位平面压缩的加密图像可逆数据隐藏附matlab代码(论文复现)

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机 电力系统

⛄ 内容介绍

密文域可逆信息隐藏(RDHEI)受到越来越多的关注,因为它可以保护原始图像的内容,同时可以准确地提取嵌入的数据,并且可以无损地重建原始图像。 为了充分利用相邻像素的相关性,本文提出了一种基于像素预测和位平面压缩的RDHEI方案。 首先,将原始图像分成相等大小的块,并计算原始图像的预测误差。 然后,分别执行8个预测误差的位平面的重排和位流压缩。 最后,通过流密码对腾出空间后的图像进行加密,并通过多LSB(最低有效位)替换将附加数据嵌入到腾出的空间中。 实验结果表明,该方法的嵌入能力优于现有方法。

⛄ 部分代码

function [origin_bits] = BitStream_DeCompress(compress_bits,L_fix)

% 函数说明:解压缩比特流

% 输入:compress_bits(压缩比特流),L_fix(定长编码参数)

% 输出:origin_bits(原始比特流)


len_bits = length(compress_bits); %统计压缩比特流的长度

comp_t = 0;%计数,已遍历压缩比特流的长度

origin_bits = zeros(); %用来记录原始比特流

ori_t = 0; %计数,原始比特流的数目

while comp_t<len_bits

   label = compress_bits(comp_t+1); %压缩段的第一个比特值

   %-------------------表示接下来的一段比特流是压缩比特流-------------------%

   if label==1

       L_pre = 0;  %前缀标记位

       for i=comp_t+1:len_bits

           if compress_bits(i) == 1

               L_pre = L_pre+1;

           else

               L_pre = L_pre+1; %前缀标记以0结束

               break;

           end

       end

       comp_t = comp_t + L_pre; %用于记录相同比特流压缩后的前缀部分

       l_bits = compress_bits(comp_t+1:comp_t+L_pre);%用于记录相同比特流压缩后的中间部分

       comp_t = comp_t + L_pre;

       [l] = BinaryConversion_2_10(l_bits); %中间部分的值

       L = 2^L_pre + l; %相同比特流的长度

       bit = compress_bits(comp_t+1);  %用于记录相同比特流的比特值

       comp_t = comp_t + 1;

       for i=1:L %记录原始比特流

           ori_t = ori_t+1;

           origin_bits(ori_t) = bit;

       end

   %----------------表示接下来的一段比特流是直接截取的比特流----------------%

   elseif label==0

       if comp_t+L_fix+1<=len_bits

           comp_t = comp_t + 1; %标记位

           origin_bits(ori_t+1:ori_t+L_fix) = compress_bits(comp_t+1:comp_t+L_fix);

           ori_t = ori_t + L_fix;

           comp_t = comp_t + L_fix;

       else

           comp_t = comp_t + 1; %标记位

           re = len_bits - comp_t;

           origin_bits(ori_t+1:ori_t+re) = compress_bits(comp_t+1:comp_t+re);

           ori_t = ori_t + re;

           comp_t = comp_t + re;

       end

   end

end

⛄ 运行结果

⛄ 复现文献

Reversible Data Hiding in Encrypted Images Based on Pixel Prediction and Bit-Plane Compression DOI: 10.1109/TDSC.2020.3019490

❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除


相关文章
|
6月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
611 0
|
6月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
282 8
|
6月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
294 8
|
6月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
566 0
|
6月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
199 0
|
6月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
219 0
|
6月前
|
机器学习/深度学习 数据采集 测试技术
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
234 8
|
6月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
325 8
|
6月前
|
编解码 运维 算法
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
443 12
|
6月前
|
人工智能 数据可视化 网络性能优化
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
205 9