当前位置: 首页 > news >正文

向长波红外成像图注入非均匀噪声

1.效果图

在这里插入图片描述
左图:条纹噪声+沙点噪声
右图:仅含沙点噪声

2.python代码

def add_noise(img16, snr_sand, snr_stripe) -> np.ndarray:"""给 16bit 红外图像添加模拟噪声(包含沙粒噪声和条纹噪声),实现基于论文噪声模型的仿真。噪声模型:1. 沙粒噪声(V_k(i,j)):- 零均值高斯白噪声,方差由输入的 SNR_sand 计算。- 模拟红外探测器的瞬时随机读出噪声。2. 条纹噪声(B(i,j)):- 由列均值偏移 θ_j 和列内随机波动 ε_{i,j} 组成:B(i,j) = θ_j + ε_{i,j}- θ_j:每列的固定偏移,来自零均值高斯分布,方差 σ_θ² = (1/4)·σ_b²ε_{i,j}:列内像素的零均值高斯波动,方差 σ_b²- σ_b² 根据输入的 SNR_stripe 与图像信号方差计算。参数:img16: np.ndarray输入的 16bit 灰度图像(uint16)snr_sand: float沙粒噪声的信噪比 (dB)snr_stripe: float条纹噪声的信噪比 (dB)返回:noisy_img16: np.ndarray添加噪声后的 16bit 图像"""h, w = img16.shapeimg = img16.astype(np.float32)signal_var = img.var()# 生成沙点噪声sand_var = signal_var / (10 ** (snr_sand / 10))sand_noise = np.random.normal(0, np.sqrt(sand_var), img.shape)# 生成条纹噪声stripe_var = signal_var / (10 ** (snr_stripe / 10))theta_j = np.random.normal(0, np.sqrt(stripe_var / 4), size=w)theta_map = np.tile(theta_j, (h, 1))  # shape=(h,w)epsilon = np.random.normal(0, np.sqrt(stripe_var), size=(h, w))stripe_noise = theta_map + epsilon# 向原图注入噪声sand_img16 = np.clip(np.round(img + sand_noise + stripe_noise), 0, 65535).astype(np.uint16)return sand_img16

3.参考文献

  1. 陈凯, 孙德新, 刘银年. 长波红外系统三维噪声模型及其分析[J]. 红外技术, 2015, 37(8): 676-679.(北大中文核心)
  2. Song L, Huang H. Spatial and temporal adaptive nonuniformity correction for infrared focal plane arrays[J]. Optics Express, 2022, 30(25): 44681-44700.(中科院SCI2区)
  3. Dandan L, **ang D, Mengyang C, et al. Nonuniformity correction method of infrared detector based on statistical properties[J]. IEEE Photonics Journal, 2024, 16(2): 1-8.(中科院SCI3区)
http://www.dtcms.com/a/328850.html

相关文章:

  • 【嵌入式电机控制#31】FOC:霍尔安装误差的补偿
  • Unity:GUI笔记(二)——工具栏和选择网格、滚动列表和分组、窗口、自定义皮肤样式、自动布局
  • Linux系统有何特点?linux系统组成如何?
  • NTUSER.DAT是什么文件
  • 华为云之Redis部署及基础语法
  • 遨游通讯推出两款三防平板,满足“危急特”场景定制化需求
  • 《AVL树的原理与C++实现:详解平衡二叉搜索树的高效构建与操作》
  • ACL 可以限制哪些流量?入方向和出方向怎么判断?
  • 高级IO(五种IO模型介绍)
  • wordpress不同页面调用不同keywords和description
  • STM32CubeMX + HAL 库:用FSMC接口与IS62WV51216芯片实现stm32外部SRAM扩展
  • csp知识基础——贪心算法
  • Java协程深度教程:从概念到Spring Boot实战
  • XCZU6CG-2FFVC900I Xilinx FPGA AMD ZynqUltraScale+ MPSoC
  • 【计算机网络】王道考研笔记整理(4)网络层
  • 【C++】哈希的应用:位图和布隆过滤器
  • VMD+皮尔逊+降噪+重构(送报告+PPT)Matlab程序
  • Java Record 类 — 简化不可变对象的写法
  • MATLAB 绘图速查笔记
  • 模式设计:策略模式及其应用场景
  • Vue3 中 <script setup> 场景下,需要手动导入和不需要手动导入的内容整理
  • HarmonyOS Navigation路由跳转的完整示例
  • 【Qt开发】常用控件(三) -> geometry
  • 重生之我在公司写前端 | “博灵语音通知终端” | 登录页面
  • Swift 实战:从数据流到不重叠区间的高效转换
  • 《书写范式》——代码如诗,诗娟代码(Python)(附精巧“九九表”生成代码)
  • 《Linux基础知识-2》
  • 【2025】Datawhale AI夏令营-多模态RAG-Task3笔记-解决方案进阶
  • HGDB的分区表实现SQL Server的分区视图
  • 邀您参与 “直通乌镇” Spring AI Alibaba 开源竞技挑战赛!