✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
随着信息爆炸时代的到来,图像信息的高效与安全传输问题迫切需要解决.从系统的角度出发,利用MATLAB平台,设计并实现了一种新的图像压缩与加密方法.首先分析了logistic混沌系统和DCT运算解码等原理和方法;然后基于MATLAB GUI界面开发方法,把多个相关模块串联到一起,进而设计了融合图像压缩,加密,编码,传输的数字通信系统.该研究对图像高速传输与安全性能的提高具有重要的实际意义,对于同类设计具有一定的指导作用.
⛄ 部分代码
function s=IQA2(origin_file, process_file)
clc
% 读取图像
img = imread(origin_file);
jmg = imread(process_file);
% 计算熵
s.entropy = [get_entropy(img) get_entropy(jmg)];
% 计算PSNR
[psnr_value,snr_value] = psnr(jmg, img);
s.psnr = psnr_value;
s.snr = snr_value;
% 文件大小
info1 = imfinfo(origin_file);
info2 = imfinfo(process_file);
% 输出结果
fprintf('\n原文件大小为%d byte,信息熵为%.3f,处理后文件大小为%d byte,信息熵为%.3f,压缩比为%.2f,处理后PSNR=%.2f,SNR=%.2f。\n', info1.FileSize, s.entropy(1), info2.FileSize, s.entropy(2), info1.FileSize/info2.FileSize, psnr_value, snr_value);
s.rate = info1.FileSize/info2.FileSize;
function res = get_entropy(x)
% 计算熵
n = 2^8;
x = double(x(:));
% 计算频次
y = hist(x, n);
% 计算概率
y = y / sum(y(:));
% 消除0干扰
y(y==0)=eps;
% 计算熵值
res = -sum(y .* log2(y));
⛄ 运行结果
⛄ 参考文献
[1] 谷胜献. 基于混沌和DNA编码的图像加密算法设计[D]. 大连理工大学, 2015.
[2] 侯玉涛. 基于混沌和DNA编码的图像加密方案研究[D]. 大连理工大学, 2018.
[3] 邵开丽, 赵攀, 袁夫彩,等. 基于MATLAB的图像压缩加密编码设计及实现[J]. 黄河科技学院学报, 2023, 25(2):6.