【图像压缩】一种基于香农熵和差分进化算法的多级图像阈值的图像压缩新方法附matlab代码

简介: 【图像压缩】一种基于香农熵和差分进化算法的多级图像阈值的图像压缩新方法附matlab代码

 1 内容介绍

图像压缩是图像传输和存储中最重要的步骤之一。 大多数最先进的图像压缩技术都是基于空间的。 在此代码中,基于多级图像阈值实现了基于直方图的图像压缩技术。 图像的灰度被划分为一组清晰的概率分区。 香农熵用于衡量清晰分组的随机性。 熵函数使用一种流行的称为差分进化的元启发式算法来最大化,以减少优化目标值的计算时间和标准偏差。

2 仿真代码

function entropy=shannonEntropy(x,h)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% INPUTS : x is the threshold vector

%          h is the histrogram of the image

% OUTPUT:  entropy is the Entropy of the image after probabilistic

%          partition by the threshold vector 'h'

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Written by : Sujoy Paul, Jadavpur University, Kolkata %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

entropy=0;

x=[1 (x+1) 256];

s=size(x);

for i=1:s(2)-1

   temp = h(x(i):x(i+1));

   tsum= sum(temp);

   ent=0;

   if tsum~=0

   for j=x(i):x(i+1)

       if h(j)~=0

           a=h(j)/tsum;

           ent = ent + a*log(a);

       end

   end

   end

   entropy = entropy + ent;    

end

entropy=-entropy;

3 运行结果

image.gif编辑

4 参考文献

[1] Paul S . A novel approach for image compression based on multi-level image thresholding using Shannon Entropy[J]. Differential Evolution.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

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


相关文章
|
6天前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
|
8天前
|
运维 算法
【故障诊断】基于最小熵反卷积、最大相关峰度反卷积和最大二阶环平稳盲反卷积等盲反卷积方法在机械故障诊断中的应用研究(Matlab代码实现)
【故障诊断】基于最小熵反卷积、最大相关峰度反卷积和最大二阶环平稳盲反卷积等盲反卷积方法在机械故障诊断中的应用研究(Matlab代码实现)
|
15天前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
|
15天前
|
数据采集 算法 数据挖掘
【场景削减】基于DBSCAN密度聚类风电-负荷确定性场景缩减方法(Matlab代码实现)
【场景削减】基于DBSCAN密度聚类风电-负荷确定性场景缩减方法(Matlab代码实现)
|
6天前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
82 14
|
6天前
|
机器学习/深度学习 边缘计算 运维
【电能质量扰动】基于ML和DWT的电能质量扰动分类方法研究(Matlab实现)
【电能质量扰动】基于ML和DWT的电能质量扰动分类方法研究(Matlab实现)
70 10
|
14天前
|
算法 安全
【含储能及sop的多时段配网优化模型】基于柔性开断点(Soft Open Point)的主动配电网电压与无功功率协调控制方法研究(Matlab代码实现)
【含储能及sop的多时段配网优化模型】基于柔性开断点(Soft Open Point)的主动配电网电压与无功功率协调控制方法研究(Matlab代码实现)
|
13天前
|
数据采集 新能源 调度
【Copula】基于二元Frank-Copula函数的风光出力场景生成方法【考虑风光出力的不确定性和相关性】(Matlab代码实现)
【Copula】基于二元Frank-Copula函数的风光出力场景生成方法【考虑风光出力的不确定性和相关性】(Matlab代码实现)
|
11天前
|
机器学习/深度学习 边缘计算 分布式计算
基于差分进化算法的微电网调度研究(Matlab代码实现)
基于差分进化算法的微电网调度研究(Matlab代码实现)
|
8天前
|
机器学习/深度学习 数据挖掘 调度
【电动汽车响应率】考虑的是针对电动汽车充放电调度问题,由于放电奖励不同导致部分车主不愿参与放电,设计出响应率计算方法(Matlab代码实现)
【电动汽车响应率】考虑的是针对电动汽车充放电调度问题,由于放电奖励不同导致部分车主不愿参与放电,设计出响应率计算方法(Matlab代码实现)

热门文章

最新文章