图像相关算法整理
2021/11/18 22:15:53
本文主要是介绍图像相关算法整理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
图像相关算法整理
1.HE算法(灰度直方图均衡算法)
- 原理:将原始图像的灰度直方图从比较集中地某个灰度区间变成全部灰度范围内的均匀分布
- 步骤:
- (1)遍历每一帧图像中的所有像素,记录每个灰度值出现的像素个数
- (2)统计每个灰度值占总像素的百分比,即每个灰度值出现的概率
- (3)建立一个映射表,对原图像的灰度值一一进行映射,修改成新的灰度值,映射关系为:
新灰度值 = (最大灰度值(255) - 最小灰度值(0))*累计概率 - 缺点:对处理的数据不加选择,他可能会增加背景噪声的对比度并且降低有用信号的对比度。
2.AHE算法(自适应直方图均衡算法)
- 原理:在HE算法的基础上,将图像划为几块分别处理,每一块统计一个各自专属的分布函数。
- 优点:相对于HE算法而言,算法的时间复杂度提高不少,降低了图像处理效率。
- 缺点:AHE算法在对每个像素块独立进行处理映射,块与块之间没有过渡处理,这样就导致图像呈现出来的效果像被切成了几个块。
3.CLAHE(限制对比度自适应直方图均衡算法)
- 原理:在AHE算法的基础上,加上阈值,来限制对比度,达到削弱噪声放大问题的效果,并使用线性插值/双线性插值的方法来优化块与块之间的过渡问题。
对于当前块中的像素灰度值,是由其相邻块共同决定的;
如果直方图中统计的灰度值与我们设定的阈值进行对比,超出阈值的部分将其均匀的分布在每一个不同的灰度值下面。
4.BBHE(图像双直方图均衡算法)
- 原理:基于图像均值来分割输入图像,得到两幅子图,一副是像素值小于或者等于均值的样本集,另一个是像素值大于均值的样本集,分别独立的进行直方图均衡化
- 步骤:
- (1)统计所有出现的灰度值的次数
- (2)将次数进行归一化,得到归一化直方图
- (3)计算累计直方图
- (4)将累计直方图进行区间转换
*区间转换公式:结果 = 最小值 + 累计直方图的值 (最大值 - 最小值)
注:累计直方图:每一个概率值代表小于等于此灰度值的概率
5.DES加密算法
几个定义:
- 密匙:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。
- 对称加密:通信双方同时掌握一个密钥,加密解密都是由一个密钥完成的(即加密密钥等于解密密钥,加解密密钥可以相互推倒出来)。双方通信前共同拟定一个密钥,不对第三方公开。
- 分组加密:分组密码是将明文分成固定长度的组,每一组都采用同一密钥和算法进行加密,输出也是固定长度的密文。
5.1 密匙产生
对于一个64位的密匙而言,其中只有56位是有用的,剩下的8位是用作奇偶验证的。
步骤:(1)将64位密匙通过下图所示的密匙置换表一去掉8个验证位,得到一个56位数据k’;
(2)将k’分成左右两块,前28位为C0,后28位为D0;
(3)根据轮数分别按照下图所示的表将上一次的两块分别循环左移1位或者2位,得到Ci,Di;
(4)将Ci,Di合并得到56位数据,再通过下图所示压缩置换表得到子密匙Ki。
5.2 S盒(代换选择)
S盒是整个变换中唯一的非线性运算过程。
步骤:(1)48位数据划分成8个盒,每个盒输入为6位数据;
(2)通过6位数据中的第1,6组成二进制数作为行数,中间4位组成的二进制数作为列数;
(3)将对应的行列的数在下图中找到对应的十进制数,再按照四位二进制输出
5.3加密步骤
(1)64位明文使用下图所示初始置换表进行置换得到新数据(表中的数据表示第多少位的数据放到该位置)
(2)分成左右两块,L0(前32位)R0(后32位)
(3)i<=16时,对于Li而言,等于R(i-1),对于Ri而言,先要让R(i-1)进行扩充置换操作得到48位数据,置换表如下第一个图所示,在与K(i-1)进行异或操作,得到新的48位数据,再对该数据通过S盒得到32位数据,下一步通过置换表得到一个新的32位数据,最后与L(i-1)进行异或操作得到Ri。
(4)经过十六轮之后,将L16和R16合并作为输入块,通过下图所示的逆置换表进行逆置换操作,得到最后的密文并输出。
这篇关于图像相关算法整理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南