基于自动亮度对比度增强功能的可逆数据隐藏(Matlab代码实现)

简介: 基于自动亮度对比度增强功能的可逆数据隐藏(Matlab代码实现)

💥1 概述

随着互联网的高速发展,社交网络服务越来越发达,人们通过社交网络服务分享图片、音频、视频等多媒体信息更加便捷,但同时也存在着一些隐患甚至是危害。例如图片等数字媒体内容在传输的过程中被恶意攻击者非法截取、窃听或篡改等,轻者造成了个人信息的泄露,重者引发严重的网络安全事故。为了满足人们对于安全性的需求,基于可逆数据隐藏的图像可逆视觉变换研究被提出。通过将图像视觉内容转换为任意参考图像的视觉内容,图像可逆视觉变换可以保护图像内容和隐私。此外,尽管相机技术不断完善,但在某些恶劣环境下所拍摄出来的照片视觉效果不佳,影响后续对照片的查看及处理。此类环境背景促进了研究学者们对基于可逆数据隐藏的图像可逆对比度增强算法的研究。图像可逆对比度增强可以增强图像不清晰部分的细节,并且增强图像在需要时可以被恢复回原始图像。本文将实现自动亮度对比度增强功能的可逆数据隐藏。


📚2 运行结果

部分代码:

function main
%Image
image=double(imread('Kodak images/Original/kodim01_org.png'));
%Payload
rng(1) %Presets randomness to ensure the results are reproducible
payload_length=15000; %number of bits to be embedded
payload=randi([0,1],payload_length,1);
%% Embedding for maximum contrast
iteration_max=1000; % default maximum iteration_max is 1000, you can increase it as much as you want, but it may take longer time
max_contrast_bypass_mode=0; % 0 = embedes addtional synthetic bits after the specified payload has been embedded to maximize the contrast
[rdh_image, ~, ~, ~,embedding_capacity_left]=mbp(image,payload,iteration_max,max_contrast_bypass_mode);
if embedding_capacity_left < 0
    disp('Failed embedding, try increasing iteration_max') 
else
    disp(['Can embed ' num2str(embedding_capacity_left) ' bits more (estimated)'])
end
%% Recovery check for maximum contrast case
[payload_rec, re_image] = mbp_recovery(rdh_image);
if isequal(re_image,image)
    disp('Original image recovered')
else
    disp('Failed to recover the original image')
end
if isequal(payload_rec,payload)
    disp('Payload recovered')
else
    disp('Failed to recover the payload')
end
%% Embedding only the payload => does not maximize the contrast
iteration_max=1000; % default maximum iteration_max is 1000, you can increase it as much as you want, but it may take longer time
max_contrast_bypass_mode=1; %1=terminates after specified payload has been embedded, does not achieve maximum contrast
[rdh_image_non_max_contrast, ~, ~, ~,embedding_capacity_left_non_max_contrast]=mbp(image,payload,iteration_max,max_contrast_bypass_mode);
if embedding_capacity_left_non_max_contrast ~= -1
    disp('Failed embedding, try increasing iteration_max') 
else
    disp(['Successfully embedded ' num2str(payload_length) ' bits. Cannot determine how many more bits can be embedded since max_contrast_bypass_mode was 1. To determine maximum number of bits embeddable (estimated), run with max_contrast_bypass_mode =0'])
end
%% Recovery check for when only the specified payload has been embedded => does not maximize the contrast
[payload_rec_non_max_contrast, re_image_non_max_contrast] = mbp_recovery(rdh_image_non_max_contrast);
if isequal(re_image_non_max_contrast,image)
    disp('Original image recovered')
else
    disp('Failed to recover the original image')
end
if isequal(payload_rec_non_max_contrast,payload)
    disp('Payload recovered')
else
    disp('Failed to recover the payload')
end
%show the image
close all
figure(1)
imshow(uint8(image))
figure(2)
imshow(uint8(rdh_image))
figure(3)
imshow(uint8(rdh_image_non_max_contrast))
end

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]吴汉舟. 可逆数据隐藏及调色板图像隐写技术研究[D].西南交通大学,2017.

[2]王森林. 可逆数据隐藏技术研究[D].兰州大学,2012.

🌈4 Matlab代码实现

相关文章
|
25天前
|
算法
基于Adaboost模型的数据预测和分类matlab仿真
AdaBoost(Adaptive Boosting)是一种由Yoav Freund和Robert Schapire于1995年提出的集成学习方法,旨在通过迭代训练多个弱分类器并赋予分类效果好的弱分类器更高权重,最终构建一个强分类器。该方法通过逐步调整样本权重,使算法更关注前一轮中被误分类的样本,从而逐步优化模型。示例代码在MATLAB 2022A版本中运行,展示了随着弱分类器数量增加,分类错误率的变化及测试数据的分类结果。
106 13
|
5月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
253 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
5月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
150 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
5月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
121 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
6月前
|
机器学习/深度学习 算法 数据挖掘
基于改进K-means的网络数据聚类算法matlab仿真
**摘要:** K-means聚类算法分析,利用MATLAB2022a进行实现。算法基于最小化误差平方和,优点在于简单快速,适合大数据集,但易受初始值影响。文中探讨了该依赖性并通过实验展示了随机初始值对结果的敏感性。针对传统算法的局限,提出改进版解决孤点影响和K值选择问题。代码中遍历不同K值,计算距离代价,寻找最优聚类数。最终应用改进后的K-means进行聚类分析。
110 10
|
7月前
|
机器学习/深度学习 算法 数据可视化
m基于PSO-LSTM粒子群优化长短记忆网络的电力负荷数据预测算法matlab仿真
在MATLAB 2022a中,应用PSO优化的LSTM模型提升了电力负荷预测效果。优化前预测波动大,优化后预测更稳定。PSO借鉴群体智能,寻找LSTM超参数(如学习率、隐藏层大小)的最优组合,以最小化误差。LSTM通过门控机制处理序列数据。代码显示了模型训练、预测及误差可视化过程。经过优化,模型性能得到改善。
122 6
|
7月前
|
机器学习/深度学习 算法
基于蛙跳优化的神经网络数据预测matlab仿真
使用MATLAB2022a,应用蛙跳优化算法(SFLA)调整神经网络权重,提升预测精度,输出预测曲线。神经网络结合输入、隐藏和输出层进行预测,蛙跳算法模仿蛙群觅食行为优化权重和阈值。算法流程包括蛙群初始化、子群划分、局部搜索及适应度更新,直至满足停止条件。优化后的神经网络能提升预测性能。
|
7月前
|
机器学习/深度学习 算法
m基于PSO-GRU粒子群优化长门控循环单元网络的电力负荷数据预测算法matlab仿真
摘要: 在MATLAB 2022a中,对比了电力负荷预测算法优化前后的效果。优化前为&quot;Ttttttt111222&quot;,优化后为&quot;Tttttttt333444&quot;,明显改进体现为&quot;Tttttttttt5555&quot;。该算法结合了粒子群优化(PSO)和长门控循环单元(GRU)网络,利用PSO优化GRU的超参数,提升预测准确性和稳定性。PSO模仿鸟群行为寻找最优解,而GRU通过更新门和重置门处理长期依赖问题。核心MATLAB程序展示了训练和预测过程,包括使用&#39;adam&#39;优化器和超参数调整,最终评估并保存预测结果。
65 0
|
8月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)