图像相关算法整理

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(使用前将#替换为@)

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

  • .NET Core代码保护!.NET Reactor这些保护机制你不得不知道!

    NET Reactor是一个功能强大的代码保护和软件许可系统 适用于为 NET Framework编写的软件 并支持生成 NET程序集的所有语言 NET Reactor迎来了久违的版本更新 进入v6 3 0 0全新时代 支持Blazor保护
  • 使用OpenSSL进行RSA加密和解密(非对称)

    1 RSA加密和解密基础概念 RSA是一种非对称加密 RSA秘钥 私钥和公钥 一对私钥和公钥就像夫妻一样是唯一的 用私钥加密后必须用对应的公钥才能解密 用公钥加密后必须用对应的私钥才能解密 加密和解密方式 公钥加密 私钥解密 私钥加密 公钥
  • Unity做一个发射炮台,1秒发射1个,5秒后消失的例子

    思路 小球要移动 移动一段时间消失 需要translate destory 一个小球不够 需要多次COPY预制体小球 copy 一 COPY代码 把这个代码放在不是复制的球的其他物体上 然后把预制体球拖入a中 using UnityEngi
  • Android加密和解密(DES,AES,MD5)

    加密是通过加密算法和加密密钥将明文转变为密文的过程 解密是其逆过程 加密算法有很多种 一般可以分为对称加密 如DES AES等 非对称加密 如RSA等 和单向加密 如MD5等 3类算法 1 在对称加密算法中 双方使用的密钥相同 要求解密方事
  • Java中方法的学习

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

    前言 在 关于我 那篇博文里 朋友们应该知道了我不是科班出身 是由机械强行转行到Linux应用开发方向 下面我就详细向大家介绍自己这一路上的转行历程 希望对大家有所启发 我是学机械专业的 对于机械专业我还是很感兴趣 而且当年这个专业也是我自
  • crypto-js 前端DES加密/解密、生成秘钥 详解

    DES概述 DES全称为Data Encryption Standard 即数据加密标准 是一种使用密钥加密的块算法 1977年被美国联邦政府的国家标准局确定为联邦资料处理标准 FIPS 并授权在非密级政府通信中使用 随后该算法在国际上广泛
  • 微信公众号测试号url和token绑定失败解决问题

    前提准备 在本地搭建一个本地服务器 具体查看如何搭建一个本地服务器 首先 我们需要到natapp获取一个信道 博主这里买的是vip1型的 当然也可以使用免费型的 根据需要选择 完了之后 去 我的隧道 查看购买的信道 复制里面的authtok
  • unity UGUI之Button按钮多种触发方式实现(有参无参函数)

    UGUI之Button按钮有多种触发方式 下面讲两种 第一种方法是在依靠属性面板绑定物体然后找到物体脚本上的方法触发 第二种是用纯代码的方式是用onClick方法 第一种 首先建立一个button 之后看button属性 如图右下角 那里的
  • nodejs的加密方式

    nodejs的加密方式 一 加密算法 为了保证数据的安全性和防篡改 很多数据在传输中都进行了加密 加密可分为三大类 对称加密 非对称加密 摘要算法 二 对称加密 采用单钥密码系统的加密方法 同一个密钥可以同时作用信息的加密和解密 该方法称为
  • iOS-加密算法

    一 散列算法 签名算法 摘要 散列算法 又称哈希函数 是一种单向加密算法 在信息安全技术中 经常需要验证消息的完整性 散列 Hash 函数提供了这一服务 它对不同长度的输入消息 产生固定长度的输出 因为其结果是不可逆的 既然是不可逆的 那么
  • SQLServer中使用加密函数,解密函数

    加密函数 加密 password 要加密的字段 Salt 盐值 pwd 加密后的数据 Create FUNCTION dbo EncryptByPassPhrasePwd password nvarchar 200 Salt nvarcha
  • openssl做HMAC实例(C++)

    1 HMAC简介 1 MAC Message Authentication Code 消息认证码算法 可以将其认为是含有秘钥的散列 Hash 函数算法 即兼容了MD和SHA算法 并在此基础上加上了秘钥 因此MAC算法也经常被称作HMAC算法
  • Unity3D之简单的点击拾取

    新建一个Cube物体和一个脚本Cube 将Cube脚本挂到Cube物体上 代码如下 csharp view plain copy using UnityEngine using System Collections public class
  • 阀门与压力表同步代码

    using System Collections using System Collections Generic using UnityEngine public class Mmmmmm MonoBehaviour float sum
  • openssl在windows环境和linux环境中的使用问题

    场景 使用c程序调用openssl在windows上进行加密 加密之后的结果放到linux环境中使用 问题 发现在windows中加密之后的密码 在linux环境中使用openssl进行解密得到的结果与加密之前不符 原因 发现是window
  • 移动端与服务端交互安全方案

    系统流程图 验签 解决问题 1 身份验证 是否是我规定的那个人 2 防篡改 是否被第三方劫持并篡改参数 3 防重放 是否重复请求 具体算法 1 约定appKey 保证该调用请求是平台授权过的调用方发出的 保证请求方唯一性 2 将appKey
  • Android中使用AES加密和解密

    Android中如何使用AES进行加密和解密 作为初入社会的IT行业的大专实习生 只能在公司里被当牛一样每天工作到半夜十二点以后 在这里也是第一次写博客 目的只有两个 1 记录技术实现 尽可能的帮助网友解决困难 2 吐槽公司 不多说了 直接
  • 记录一次 JS 解密去混淆的经历 -- 如何破解加密的 JS 代码(一)

    写在前头 昨天发了一个 某JS最牛加密脱壳解密破解去混淆工具 有朋友说上代码不如讲一下思路 于是今天准备捋一下这个思路 顺便当整理复习了 需要直接解密代码的请看上一篇文章 这里只有思路与过程 阅读此文默认你有一定的 JavaScript 基
  • 常用的加密算法

    整理一下常用的加密算法 加密算法我们整体可以分为 可逆加密和不可逆加密 可逆加密又可以分为 对称加密和非对称加密 一 不可逆加密 常见的不可逆加密算法有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 统计每个灰度值占总像素的百分比 即