• 基于像素预测和位平面压缩的加密图像可逆数据隐藏附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

        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电子书和数学建模资料

    ❤️部分理论引用网络文献,若有侵权联系博主删除

  • 相关阅读:
    Nacos配置中心实战
    通过rebase,解决gitlab提示的pipeline failed
    C# ComboBox 和 枚举类型(Enum)相互关联
    基于C语言的哈夫曼转化软件
    Hive的独立安装
    java毕业设计的滑雪场学具租赁管理系统mybatis+源码+调试部署+系统+数据库+lw
    迅为RK3568开发板QT学习手册
    @ControllerAdvice 注解使用及原理探究
    gtest语法(一)TEST和TEST_F宏
    图像的表示与通道数问题、读取并展示图片、cv2.imread(filename, flags=None)
  • 原文地址:https://blog.csdn.net/qq_59747472/article/details/127819054