图像相关算法整理

2023-10-27

图像相关算法整理

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合并作为输入块,通过下图所示的逆置换表进行逆置换操作,得到最后的密文并输出。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像相关算法整理 的相关文章

  • seaborn.heatmap操作手册

    本文转自seaborn heatmap官方操作手册 http seaborn pydata org generated seaborn heatmap html heatmap很好 很强大 seaborn heatmap seaborn0
  • 自学微信小程序开发第九天-关于分包

    自学微信小程序开发第九天 关于分包 分包前后的项目构成 分包的加载规则 文件分配 分包的配置定义 分包的一些原则 打包原则 引用原则 分包举例 独立分包 独立分包的应用场景举例 声明独立分包 进入独立分包页面 分包预下载 分包指的是把一个完
  • Python 中的八大关键要素

    阅读本文需要 10 分钟 前言 学习任何一门语言之前 你得先了解它的整体架构 知道它的思想 了解它的关键要素 一门语言学到后来你会发现 就像是在剥茧抽丝一般 越是深入越是发现其奥妙之处 Python 中的八大关键要素 Python 是一种D
  • java持久层框架数据源加密

    学习目标 java持久层框架数据源加密 文章目录 学习目标 1 mybatis框架数据源加密 https www cnblogs com melovemingming p 10699613 html 这里是引用https www cnblo
  • Unity做一个发射炮台,1秒发射1个,5秒后消失的例子

    思路 小球要移动 移动一段时间消失 需要translate destory 一个小球不够 需要多次COPY预制体小球 copy 一 COPY代码 把这个代码放在不是复制的球的其他物体上 然后把预制体球拖入a中 using UnityEngi
  • Java中方法的学习

    目录 Java中的方法定义 设计方法的原则 方法的命名规则 代码实现 方法调用 方法的重载 方法学习不知死过多少次 还让我学是吧 你没完了哈 来 来 来 咱们一起来分析 老师 前面的关键字我讲过吧 数据类型还用说嘛 方法的定义格式我说过吧
  • java与数据库数据加密方法

    1 java测试加密代码 AES和HEX加密及解密工具类 AES加解密字符串工具类 public class AesEncrypt public static void main String args String aes en aes
  • Unity角色控制器CharacterController的简单介绍

    角色控制器 CharacterController 首先 角色控制器没有碰撞效果 这是和刚体的区别 不像刚体可以给其力 如果想使人物移动 直接复制官方文本中的CharacterController下的Move 方法 前台添加 Charact
  • Unity3D碰撞检测和OnTriggerEnter用法

    在目前掌握的情况分析 在Unity中参与碰撞的物体分2大块 1 发起碰撞的物体 2 接收碰撞的物体 1 发起碰撞物体有 Rigodbody CharacterController 2 接收碰撞物体由 所有的Collider 工作的原理为 发
  • RSA加密算法(公钥+私钥加密)

    公开密钥加密 公开密钥加密 public key cryptography 也成为非对称加密 是密码学的一种算法 他需要两个密钥 一个是公开密钥 另一个是私有密钥 一个用作加密的时候 另一个则用作解密 明文 需要加密的内容 成为明文 密文
  • 自学C语言(10)define定义常量和宏 内存 指针变量

    文章前言 学的太多 更新的太少了哈哈 总不能把学的忘记了 回顾知识 继续总结 文章目录 一 define定义常量和宏 1 define定义标识符常量 2 define定义宏 二 内存 内存 如何产生地址 计算机32位 二进制 计算机64位
  • .NET 5.0发布,你的代码保护工具还够用吗?

    NET是程序员比较钟爱的一款编程工具 但它有一个致命的缺点 编译好的程序集很容易反编译成源代码 一旦被反编译 软件开发者的辛苦劳动将付诸东流 选择一款合格的 NET保护工具是非常重要的 如今 NET 5 0已经发布 你是如何评价的呢 无论怎
  • java小笔记,List实体类对象的去重

    java小笔记 List实体类对象的去重 去除重复的数据 ArrayList lt 实体类 gt collect orderPOList stream collect Collectors collectingAndThen Collect
  • 计算机内存取证之BitLocker恢复密钥提取还原

    BitLocker是微软Windows自带的用于加密磁盘分卷的技术 通常 解开后的加密卷通过Windows自带的命令工具 manage bde 可以查看其恢复密钥串 如下图所示 如图 这里的数字密码下面的一长串字符串即是下面要提取恢复密钥
  • 常见加密算法实现——DES、AES、RSA、MD5

    一 对称加密 1 介绍 对称加密 加密和解密使用同一个密钥 对称加密算法 DES 3DES AES等 DES 数据加密标准 是一种使用密钥加密的块算法 3DES DES向AES过渡的加密算法 AES 高级加密标准 替代DES 对称加密的特点
  • openssl在windows环境和linux环境中的使用问题

    场景 使用c程序调用openssl在windows上进行加密 加密之后的结果放到linux环境中使用 问题 发现在windows中加密之后的密码 在linux环境中使用openssl进行解密得到的结果与加密之前不符 原因 发现是window
  • Bcrypt 加密算法研究与对比

    Bcrypt 加密算法研究与对比 一 什么是Bcrypt 二 Bcrypt如何加密与验证 一 encode方法加密 二 matches方法验证 三 如果使用彩虹表进行hash碰撞攻击会如何 四 比较 MD5加密算法的缺陷 相对于MD5 Bc
  • Socket_Tcp加密文件传输系统

    代码下载链接 Socket Tcp 原文链接 https blog csdn net weixin 45746588 article details 107683901 这是一个课程的作业 我是初学者 所以写完这个代码还是花了我好几周的时间
  • vuforia模型脱卡功能的实现

    思路是这样 识别图视野脱离之后 将被识别的物体不再作为识别图的子物体 转而作为相机的子物体 并置于屏幕中央位置 1 首先 写个小script C 纯文本查看 复制代码 01
  • 常用的加密算法

    整理一下常用的加密算法 加密算法我们整体可以分为 可逆加密和不可逆加密 可逆加密又可以分为 对称加密和非对称加密 一 不可逆加密 常见的不可逆加密算法有MD5 HMAC SHA1 SHA 224 SHA 256 SHA 384 和SHA 5

随机推荐

  • tkinter简单选取文件或文件夹绝对路径

    选取文件夹 选取文件夹 def get folder root tkinter Tk root withdraw 获取文件夹路径 path filedialog askdirectory 返回文件夹路径 return path 选取文件路径
  • 阿里云智能编码插件Cosy,让你的开发过程既高效又轻松

    阿里云智能编码插件 Alibaba Cloud AI Coding Assistant 是一款AI编程助手 它提供代码智能补全和代码示例搜索能力 帮助你更快更高效地写出高质量代码 让你的开发过程既高效又轻松 点击立即体验 阿里云智能编码 你
  • 用mac做开发真的比用windows好么?

    近几年发现周围的程序员们使用mac的越来越多了 可是本人貌似对mac并不感冒 依旧在使用windows的队伍中 感觉win10用着也不错啊 虽然不怎么用mac 但是有一点不得不说mac的外形的确很酷 这一点不得不承认 也可能有一部分人就因为
  • Android开发-在Android应用里实现自动发送邮件的功能

    前言 前段时间由于项目的需要 就是在Android应用里的用户反馈功能需要当用户输入反馈的文本信息后 用户点击提交按钮自动把反馈的文本信息已发送邮件的形式发送给开发者 要实现这个功能 首先需要两个邮箱账号 一个是发送方的邮箱地址 一个是接收
  • AXI Uartlite IP AXI驱动代码

    说明 AXI Uartlite IP AXI驱动代码 根据博客 Xilinx AXI Uartlite IP核的使用 有问题联系微信 Crazzy M 效果简单展示 module uart parameter UART REG NUM 2
  • CAP 可能是CAP理论的最好解释

    一篇非常精彩的解释CAP理论的文章 翻译水平有限 不准确之处请参考原文 还请见谅 Chapter 1 Remembrance Inc Your new venture Last night when your spouse apprecia
  • centos7 监控文件内容变化打印

    tail命令可以输出文件末尾的内容 至于输出多少看你指定多少 最少是10行 使用 一下命令可以伴随文件内容的增长实时的查看文件内容的变化 tail f file name
  • Springboot + MySQL+ JPA Ⅰ 项目新建

    最近在学习JPA的 在此跟大家分享一下 持续更新中 开发工具IDEA 一 new project 选择 Spring Initializr Next 二 自定义项目名 我这边时smjdemo 三 选择需要依赖的包 Lombok 本人喜欢用
  • 使用代理服务获取网页源代码测试

    import requests url 输入测试访问网址 headers User Agent Mozilla 5 0 Windows NT 10 0 Win64 x64 AppleWebKit 537 36 KHTML like Geck
  • 一键开启mysql的审计功能(无需安装插件)

    本文所使用数据库为mysql8 0 5 x版本的mysql上没试过一下步骤调用审计功能 无需下载任何插件 两行命令就能搞定 一 首先查看审计配置情况 show global variables like log timestamps sho
  • Spring Boot 笔记 - 注解(四)-- @SpringBootApplication

    Many Spring Boot developers like their apps to use auto configuration component scan and be able to define extra configu
  • 二、Java代码实现冒泡排序

    冒泡排序描述 关键 相邻的两个元素进行比较 依次比较数组中相邻两个元素大小 若 a j gt a j 1 则交换两个元素 两两都比较一遍 就是一轮冒泡 结果是一轮冒泡后最大的元素排到了最后 重复以上的步骤 直到整个数组有序就行了 冒泡的优化
  • 字典序算法详解

    一 字典序 字典序 就是按照字典中出现的先后顺序进行排序 1 单个字符 在计算机中 25个字母以及数字字符 字典排序如下 0 lt 1 lt 2 lt lt 9 lt a lt b lt lt z 比如在 python 中 0 lt 9 l
  • R语言初学者必备的10个实用函数

    R语言初学者必备的10个实用函数 R语言是一种流行的数据分析和统计建模工具 它提供了丰富的函数和库来处理和分析数据 对于初学者来说 掌握一些常用的实用函数将使他们更加高效地使用R语言进行数据处理和可视化 本文将介绍10个初学者必备的实用函数
  • CPU上下文切换

    文章目录 CPU上下文切换 什么是CPU上下文 进程上下文切换 特权模式切换 进程上下文切换与系统调用的区别 什么时候会切换进程上下文 线程上下文切换 中断上下文切换 监控上下文切换 vmstat pidstat 减少上下文切换 CPU上下
  • 生命在于学习——网站Getshell的方法

    PS 本篇文章仅用于学习笔记记录 不可用于其他用途 一 通用getshell方法 1 任意文件上传 1 注意编程语言 asp aspx php jsp 2 上传成功 但是访问直接下载文件 以文本展示 原因 文件没有被解析 3 上传成功 蚁剑
  • Burp Suite软件常用模块

    目录 1 Proxy 代理模块 2 Repeater模块 请求重放 3 Intruder模块 入侵自动化攻击 Intruder的4种攻击模式 1 Sniper模式 狙击手模式 2 Battering ram模式 攻城锤模式
  • 解决HC05蓝牙模块主从配对失败及AT模式设置方案

    解决HC05蓝牙模块主从配对失败及AT模式设置方案 原创文章 转载请注明 本文为电脑端配置 关于连线 关于串口调试工具 关于AT指令与蓝牙模块配对 关于测试验证 原创文章 转载请注明 本文为电脑端配置 最近在做一个开源的Vorpal Hex
  • HBase拆分策略

    转载自 http blog javachen com 2014 01 16 hbase region split policy html Region 概念 Region是表获取和分布的基本元素 由每个列族的一个Store组成 对象层级图如
  • 图像相关算法整理

    图像相关算法整理 1 HE算法 灰度直方图均衡算法 原理 将原始图像的灰度直方图从比较集中地某个灰度区间变成全部灰度范围内的均匀分布 步骤 1 遍历每一帧图像中的所有像素 记录每个灰度值出现的像素个数 2 统计每个灰度值占总像素的百分比 即