【ISP】对于ISP的关键算法补充

本篇是对于ISP的关键算法进行补充说明, 后面我们将开始逐渐深入讨论ISP的pipeline


1. 非局部均值(NLM, Non-Local Means)

原理

非局部均值(NLM)是一种基于 块匹配(Patch Matching) 的去噪算法,它利用了图像的 自相似性(Self-Similarity)来进行降噪。核心思想是:
一幅图像中的某个像素,其最佳去噪值可能不是简单地来自邻域均值,而是来自整幅图像中与它相似的区域

数学公式

给定一幅带噪图像 (I(x)),NLM 计算去噪后的像素值 (I_{\text{NLM}}(x)) 为:

[
I_{\text{NLM}}(x) = \sum_{y \in \Omega} w(x, y) I(y)
]

其中:

  • ( x ) 是当前像素点,( y ) 是搜索窗口内的像素点;

  • ( w(x, y) ) 是相似性权重,基于 高斯核 计算:

    [
    w(x, y) = \frac{1}{Z(x)} \exp \left( -\frac{| P(x) - P(y) |2}{h2} \right)
    ]

    • ( P(x) ) 和 ( P(y) ) 是以 ( x ) 和 ( y ) 为中心的局部 patch(通常是 ( 7 \times 7 ) 或 ( 5 \times 5 ));
    • ( h ) 是滤波参数,控制降噪强度;
    • ( Z(x) ) 是归一化因子。

特点

  • 能有效保留边缘和纹理(因为利用了整幅图像的冗余信息)。
  • 计算量大,复杂度为 ( O(N^2) ),需要优化(如 快速 NLM,FFT 加速)。
  • 适用于自然图像降噪

2. BM3D(Block Matching and 3D Filtering)

原理

BM3D(块匹配和 3D 变换域滤波)是一种更先进的降噪算法,它扩展了 NLM 的思想,通过 分组(Grouping)、变换(Transform)和阈值(Thresholding) 实现高效降噪。

步骤

  1. 分组(Grouping)

    • 对于每个小块(通常为 ( 8 \times 8 )),在整幅图像中寻找相似的块。
    • 这些相似块组成一个 3D 立方体(Stack)。
  2. 3D 变换(Transform)

    • 对 3D 立方体进行 离散余弦变换(DCT)或小波变换
  3. 阈值滤波(Thresholding)

    • 在变换域内进行软阈值处理(Soft Thresholding),去除噪声成分。
  4. 反变换(Inverse Transform)

    • 将去噪后的数据反变换回时域,并进行块重叠加权。
  5. 重建(Aggregation)

    • 通过加权平均,将多个重叠块合并,得到最终的去噪图像。

特点

  • 比 NLM 更强大,能更好地去噪并保留细节。
  • 计算量大,但可以使用 GPU 加速。
  • 适用于医学图像、遥感、低光环境下的降噪

3. TNR(Temporal Noise Reduction,时域降噪)

原理

TNR 主要用于视频降噪,它利用视频帧之间的 时间相关性 来降低噪声,同时避免运动模糊。基本思路是:

  • 静止区域,使用多帧平均(Frame Averaging)。
  • 运动区域,进行运动补偿(Motion Compensation)以避免鬼影。

主要方法

(1) 帧融合(Frame Blending)
  • 对当前帧 ( I_t ) 和过去几帧 ( I_{t-1}, I_{t-2}, \dots ) 进行加权平均:

    [
    I_{\text{TNR}}(x) = \alpha I_t(x) + (1 - \alpha) I_{t-1}(x)
    ]

    其中 ( \alpha ) 是一个时间平滑参数。

(2) 运动补偿(Motion Compensation)
  • 计算 光流(Optical Flow) 来估计物体运动:
    • 若光流稳定,则认为区域是静止的,进行时域降噪。
    • 若光流大,则认为是运动区域,减少时域滤波力度。

应用

  • 夜间视频降噪
  • 安防监控
  • HDR 视频

4. 光流(Optical Flow)

原理

光流是计算图像序列中像素的运动向量,在 TNR、目标跟踪、视频增强等领域非常重要。

主流方法

(1) 经典方法
  1. Lucas-Kanade 方法
    • 通过对局部窗口进行梯度计算,估计小范围光流。
  2. Horn-Schunck 方法
    • 通过全局优化方法求解稠密光流场。
(2) 现代方法
  • DeepFlow、RAFT、PWC-Net:基于深度学习,精度高但计算量大。

应用

  • 视频稳定
  • 目标跟踪
  • 自动驾驶(计算运动物体的轨迹)

5. Retinex 算法(用于增强和去雾)

原理

Retinex 是 人眼视觉模型 的一种模拟,它认为图像的颜色信息和亮度信息是分离的,并试图恢复真实场景的对比度。

数学模型

[
R(x) = \frac{I(x)}{L(x)}
]
其中:

  • ( I(x) ) 是输入图像,
  • ( L(x) ) 是估计的光照分量,
  • ( R(x) ) 是恢复的图像。

主要方法

  1. 单尺度 Retinex(SSR)
  2. 多尺度 Retinex(MSR)
  3. 带颜色恢复的 MSRCR

应用

  • 图像增强
  • 去雾
  • 低光照增强

6. USM(Unsharp Masking,反锐化掩膜)

原理

USM 通过增强边缘对比度来实现锐化,基本思想是:

  1. 计算高斯模糊图像 ( I_{\text{blur}}(x) )。
  2. 计算锐化增强量:
    [
    S(x) = I(x) - I_{\text{blur}}(x)
    ]
  3. 计算锐化图像:
    [
    I_{\text{sharp}}(x) = I(x) + k S(x)
    ]
    其中 ( k ) 控制锐化强度。

应用

  • 照片后期处理
  • 计算机视觉前处理

总结

算法主要功能适用场景
NLM非局部去噪细节保留降噪
BM3D3D 变换去噪高质量去噪
TNR视频降噪夜间监控
光流运动估计目标跟踪
Retinex去雾、增强低光图像
USM锐化细节增强

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/31612.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用vector实现栈的功能

要注意pop_back和back()的区别 #include <bits/stdc.h> using namespace std;void Push(vector<int> &v,int x) {v.push_back(x); }void Top(vector<int> &v) {if(!v.empty()){cout<<v.back()<<endl;// v.pop_back();}else {cout<&l…

SegMAN模型详解及代码复现

SegMAN模型概述 模型背景 在深入探讨SegMAN模型之前&#xff0c;我们需要了解其研究背景。在SegMAN出现之前&#xff0c;计算机视觉领域的研究主要集中在以下几个方面&#xff1a; 手工制作方法&#xff0c;如SIFT基于卷积神经网络(CNN)的方法&#xff0c;如STN和PTN对平移、…

基于粒子群算法的配电网重构

一、配电网重构原理 定义&#xff1a; 配电网重构是指在满足运行约束的前提下&#xff0c;通过改变开关状态优化配电网性能&#xff0c;提高系统的经济效益和运行效率。 拓扑约束&#xff1a; 配电网必须保持径向拓扑&#xff0c;避免环网或孤岛。采用算法控制开关状态的选择&…

自然语言处理:无监督朴素贝叶斯模型

介绍 大家好&#xff0c;博主又来和大家分享自然语言处理领域的知识了&#xff0c;今天给大家介绍的是无监督朴素贝叶斯模型。 在自然语言处理这个充满挑战又极具魅力的领域&#xff0c;如何从海量的文本数据中挖掘有价值的信息&#xff0c;一直是研究者们不断探索的课题。无…

软件工程概述

软件开发生命周期 软件定义时期&#xff1a;包括可行性研究和详细需求分析&#xff0c;任务是确定软件开发的总目标。 问题定义可行性研究&#xff08;经济、技术、操作、社会可行性&#xff0c;确定问题和解决办法&#xff09;需求分析&#xff08;确定功能需求&#xff0c;性…

基于51单片机的日历流水灯proteus仿真

地址&#xff1a; https://pan.baidu.com/s/1lt1ubDhKNTeIcP0Kf1UXrA 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52/AT89C51简介&#xff1a; AT89C51 是一款常用的 8 位单片机&#xff0c;由 Atmel 公司&#xff08;现已被 Microchip 收…

【Go沉思录】朝花夕拾:探究 Go 接口型函数

本文目录 序1.接口型函数案例方式1 GetterFunc 类型的函数作为参数方式2 实现了 Getter 接口的结构体作为参数价值 2.net/http包中的使用场景 序 之前写Geecache的时候&#xff0c;遇到了接口型函数&#xff0c;当时没有搞懂&#xff0c;现在重新回过头研究复习Geecache的时候…

【若依框架】代码生成详细教程,15分钟搭建Springboot+Vue3前后端分离项目,基于Mysql8数据库和Redis5,管理后台前端基于Vue3和Element Plus,开发小程序数据后台

今天我们来借助若依来快速的搭建一个基于springboot的Java管理后台&#xff0c;后台网页使用vue3和 Element Plus来快速搭建。这里我们可以借助若依自动生成Java和vue3代码&#xff0c;这就是若依的强大之处&#xff0c;即便你不会Java和vue开发&#xff0c;只要跟着石头哥也可…

Java 线程与线程池类/接口继承谱系图+核心方法详解

Java 线程与线程池类/接口继承谱系图 1. 线程相关类与接口关系 #mermaid-svg-shTOx2cIkm79Zevf {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-shTOx2cIkm79Zevf .error-icon{fill:#552222;}#mermaid-svg-shTOx2cI…

BFS(十三)463. 岛屿的周长

463. 岛屿的周长 给定一个 row x col 的二维网格地图 grid &#xff0c;其中&#xff1a;grid[i][j] 1 表示陆地&#xff0c; grid[i][j] 0 表示水域。 网格中的格子 水平和垂直 方向相连&#xff08;对角线方向不相连&#xff09;。整个网格被水完全包围&#xff0c;但其中恰…

使用 Ansys Mechanical 和 optiSLang 进行材料模型校准

介绍 提供与实验数据匹配的准确仿真结果的材料模型是成功对实际应用进行 FEA 仿真的基础。根据实验数据校准材料模型是一个优化问题&#xff0c;其中仿真和真值信号之间的“距离”最小&#xff0c;表明模型与实验的“接近”程度。在此示例中&#xff0c;我们将对校准示例进行概…

SSA-朴素贝叶斯分类预测matlab代码

麻雀搜索算法&#xff08;Sparrow Search Algorithm&#xff0c;简称 SSA&#xff09;是于 2020 年提出的一种新兴群智能优化算法&#xff0c;其灵感主要来源于麻雀的觅食行为以及反捕食行为。 本次使用的数据是 Excel 格式的分类数据集数据。数据集被合理划分为训练集、验证集…

Houdini SOP层 Scatter节点

SOP 代表 Surface Operator&#xff08;几何体操作节点&#xff09;&#xff0c;所有几何体的建模、变形、分布等操作都在此层级完成。 Scatter节点的作用就是 以不同的密度在模型表面撒点 Scatter 节点属于 SOP&#xff08;几何体&#xff09;层级&#xff1a; 进入 Geometr…

数据结构:有序表的合并

前文介绍了《有序表的插入》&#xff0c;本文介绍有序表的合并。这两种对有序表的操作&#xff0c;是数据结构中常考的内容&#xff0c;特别是在 408 考卷中&#xff0c;在算法设计的题目中&#xff0c;有可能会考查对有序表的操作。那么&#xff0c;这两篇文章中的方法就是能够…

STM32Cubemx-H7-8-维特科技WT61C-TTL陀螺仪获取XYZ角度

前言 本人玩车的时候要用到陀螺仪 MPU6050容易卡死&#xff0c;然后还很漂&#xff0c;还是太难用了 68块钱的陀螺仪再上位机上的效果挺满意&#xff0c;于是打算用串口用到自己的模型上 本文教大家如何编写串口程序&#xff0c;通过串口获取角度 大家把本文的原理学会后&…

本地部署Navidrome个人云音乐平台随时随地畅听本地音乐文件

文章目录 前言1. 安装Docker2. 创建并启动Navidrome容器3. 公网远程访问本地Navidrome3.1 内网穿透工具安装3.2 创建远程连接公网地址3.3 使用固定公网地址远程访问 前言 今天我要给大家安利一个超酷的私有化音乐神器——Navidrome&#xff01;它不仅让你随时随地畅享本地音乐…

音视频入门基础:RTP专题(15)——FFmpeg源码中,获取RTP的视频信息的实现

一、引言 通过FFmpeg命令可以获取到SDP文件描述的RTP流的视频压缩编码格式、色彩格式&#xff08;像素格式&#xff09;、分辨率、帧率信息&#xff1a; ffmpeg -protocol_whitelist "file,rtp,udp" -i XXX.sdp 本文以H.264为例讲述FFmpeg到底是从哪个地方获取到这…

配置 Thunderbird 以使用 outlook 邮箱

配置 Thunderbird 以使用 outlook 邮箱 thunder bird 作为邮件客户端非常好用&#xff0c;不用每次登录邮箱网页端查看邮件&#xff0c;直接打开配置好的 thunder bird 即可免登录查看邮件。 0. 什么是 Thunder Bird ? https://www.thunderbird.net/zh-CN/ Thunderbird 创立…

关于ModbusTCP/RTU协议转Ethernet/IP(CIP)协议的方案

IGT-DSER智能网关模块支持西门子、倍福(BECKHOFF)、罗克韦尔AB&#xff0c;以及三菱、欧姆龙等各种品牌的PLC之间通讯&#xff0c;支持Ethernet/IP(CIP)、Profinet(S7)&#xff0c;以及FINS、MC等工业自动化常用协议&#xff0c;同时也支持PLC与Modbus协议的工业机器人、智能仪…

蓝桥杯省赛真题C++B组-裁纸刀2022

一、题目 问题描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 小蓝有一个裁纸刀&#xff0c;每次可以将一张纸沿一条直线裁成两半。 小蓝用一张纸打印出两行三列共 6 个二维码&#xff0c;至少使用九次裁出来&#x…