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

【计算机视觉】三种图像质量评价指标详解:PSNR、SSIM与SAM

图像质量评价指标详解:PSNR、SSIM与SAM

文章目录

  • 图像质量评价指标详解:PSNR、SSIM与SAM
    • 1. 峰值信噪比(PSNR)
      • 1.1 数学定义
      • 1.2 特点与局限性
    • 2. 结构相似性指数(SSIM)
      • 2.1 数学定义
      • 2.2 特点与应用
    • 3. 光谱角度映射器(SAM)
      • 3.1 数学定义
      • 3.2 特点与应用
    • 4. Python实现示例
    • 5. 指标对比与选择建议
    • 6. 总结

在图像处理、压缩和恢复等领域,我们需要客观的指标来评估图像质量。本文将详细介绍三种常用的图像质量评价指标:峰值信噪比(PSNR)、结构相似性指数(SSIM)和光谱角度映射器(SAM)。

1. 峰值信噪比(PSNR)

PSNR是最广泛使用的图像质量评价指标之一,它通过计算原始图像与处理后图像之间的均方误差(MSE)来衡量图像失真程度。

1.1 数学定义

PSNR的计算公式如下:

PSNR = 10 ⋅ log ⁡ 10 ( MAX 2 MSE ) = 20 ⋅ log ⁡ 10 ( MAX MSE ) \text{PSNR} = 10 \cdot \log_{10}\left(\frac{\text{MAX}^2}{\text{MSE}}\right) =20 \cdot \log_{10}\left(\frac{\text{MAX}}{\sqrt{\text{MSE}}}\right) PSNR=10log10(MSEMAX2)=20log10(MSE MAX)

其中:

  • M A X = 2 n − 1 MAX = 2^n -1 MAX=2n1 n n n 位图像可能的最大像素值(例如,对于8位图像为255)
  • M S E MSE MSE是均方误差,定义为:

MSE = 1 m n ∑ i = 0 m − 1 ∑ j = 0 n − 1 [ I ( i , j ) − K ( i , j ) ] 2 \text{MSE} = \frac{1}{mn}\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}[I(i,j) - K(i,j)]^2 MSE=mn1i=0m1j=0n1[I(i,j)K(i,j)]2

其中 I I I K K K分别是原始图像和处理后图像, m m m n n n是图像尺寸。

1.2 特点与局限性

优点:

  • 计算简单,易于理解,完全客观地反映了两张图片之间的差异
  • 广泛应用于各种图像处理任务

缺点:

  • 仅基于像素级别的差异,不考虑人类视觉系统的特性
  • 对于相同MSE的不同类型的失真,人眼感知可能完全不同
  • PSNR值高并不总意味着视觉质量好

例如,在一个图像去噪任务中,对原始无噪声图像(m×n)进行噪声攻击得到含有噪声的图像(如图3-1),需要对图像进行去噪处理,评价指标为计算原始无噪声图像(m×n)与去噪后图像(m×n)的峰值信噪比(Peak
Signal to Noise Ratio, PSNR)(武汉大学遥感信息工程学院《数字图像处理》课本P135)。

图1
受到噪声攻击的图像

图1 受到噪声攻击的图像

我在试验的过程中,发现了这样的现象: 图2
PSNR最高的图像

图2 PSNR最高的图像(基于 Lucidrains 的开源库 [denoising-diffusion-pytorch]
(https://github.com/lucidrains/denoising-diffusion-pytorch) 中的 UNet 模型去噪,PSNR达36.0626)

图3
PSNR不是最高,但给人视觉效果感觉最好的图像

图3 PSNR不是最高,但给人视觉效果感觉最好的图像

可以发现,由于这个图像去噪的任务的评价指标是PSNR,是一个客观指标,由PSNR的计算公式可知,当去噪后图像与原图越接近时,PSNR越高(图2),但是给人感觉的视觉效果更好(图3)并不意味着与原图更接近。可以说,图2在图像复原上的效果更好,而图3在图像增强上的效果更好。

2. 结构相似性指数(SSIM)

SSIM是一种更符合人类视觉系统特性的评价指标,它考虑了图像的结构信息、亮度和对比度。

2.1 数学定义

SSIM指数的计算基于三个比较因素:亮度(l)、对比度©和结构(s):

SSIM ( x , y ) = [ l ( x , y ) ] α ⋅ [ c ( x , y ) ] β ⋅ [ s ( x , y ) ] γ \text{SSIM}(x,y) = [l(x,y)]^{\alpha} \cdot [c(x,y)]^{\beta} \cdot [s(x,y)]^{\gamma} SSIM(x,y)=[l(x,y)]α[c(x,y)]β[s(x,y)]γ

通常α=β=γ=1,简化后的公式为:

SSIM ( x , y ) = ( 2 μ x μ y + C 1 ) ( 2 σ x y + C 2 ) ( μ x 2 + μ y 2 + C 1 ) ( σ x 2 + σ y 2 + C 2 ) \text{SSIM}(x,y) = \frac{(2\mu_x\mu_y + C_1)(2\sigma_{xy} + C_2)}{(\mu_x^2 + \mu_y^2 + C_1)(\sigma_x^2 + \sigma_y^2 + C_2)} SSIM(x,y)=(μx2+μy2+C1)(σx2+σy2+C2)(2μxμy+C1)(2σxy+C2)

其中:

  • μ x \mu_x μx μ y \mu_y μy是图像x和y的平均值
  • σ x 2 \sigma_x^2 σx2 σ y 2 \sigma_y^2 σy2是图像x和y的方差
  • σ x y \sigma_{xy} σxy是图像x和y的协方差
  • C 1 C_1 C1 C 2 C_2 C2是为避免分母为零而添加的常数

2.2 特点与应用

优点:

  • 更符合人类视觉感知
  • 考虑结构信息,不仅仅是像素差异
  • 取值范围在-1到1之间,1表示完全相同

应用场景:

  • 图像压缩算法评估
  • 图像降噪和超分辨率重建
  • 视频质量评估

3. 光谱角度映射器(SAM)

SAM主要用于高光谱图像处理领域,它测量两个光谱向量之间的角度,提供了一种与强度无关的相似性度量。

3.1 数学定义

SAM的计算公式为:

SAM ( x , y ) = arccos ⁡ ( ⟨ x , y ⟩ ∣ ∣ x ∣ ∣ ⋅ ∣ ∣ y ∣ ∣ ) \text{SAM}(x,y) = \arccos\left( \frac{\langle x,y \rangle}{||x|| \cdot ||y||} \right) SAM(x,y)=arccos(∣∣x∣∣∣∣y∣∣x,y)

其中:

  • ⟨ x , y ⟩ \langle x,y \rangle x,y表示向量x和y的内积
  • ∣ ∣ x ∣ ∣ ||x|| ∣∣x∣∣ ∣ ∣ y ∣ ∣ ||y|| ∣∣y∣∣表示向量x和y的欧几里得范数

SAM也可以通过欧拉积分来表示,类似于伽马函数的定义:

Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb{N} Γ(n)=(n1)!nN

是通过欧拉积分定义的:

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

3.2 特点与应用

优点:

  • 对光照变化不敏感
  • 能够有效区分不同材料的光谱特征
  • 在遥感和高光谱图像分析中特别有用

应用场景:

  • 高光谱图像分类
  • 目标检测与识别
  • 遥感图像分析

4. Python实现示例

下面提供这三种评价指标的Python实现示例:

import numpy as np
import cv2
from skimage.metrics import structural_similarity as ssim
from math import log10, sqrt# PSNR实现
def calculate_psnr(original, compressed):mse = np.mean((original - compressed) ** 2)if mse == 0:  # 图像相同return 100max_pixel = 255.0psnr = 20 * log10(max_pixel / sqrt(mse))return psnr# SSIM实现 (使用skimage库)
def calculate_ssim(original, compressed):return ssim(original, compressed, data_range=compressed.max() - compressed.min())# SAM实现
def calculate_sam(original, compressed):# 将图像转换为向量original_flat = original.reshape(-1)compressed_flat = compressed.reshape(-1)# 计算内积dot_product = np.sum(original_flat * compressed_flat)# 计算范数norm_original = np.sqrt(np.sum(original_flat ** 2))norm_compressed = np.sqrt(np.sum(compressed_flat ** 2))# 计算角度angle = np.arccos(dot_product / (norm_original * norm_compressed))return angle# 示例使用
original = cv2.imread('original.png', 0)  # 以灰度模式读取
compressed = cv2.imread('compressed.png', 0)psnr_value = calculate_psnr(original, compressed)
ssim_value = calculate_ssim(original, compressed)
sam_value = calculate_sam(original, compressed)print(f"PSNR: {psnr_value} dB")
print(f"SSIM: {ssim_value}")
print(f"SAM: {sam_value} radians")

5. 指标对比与选择建议

指标优势局限性适用场景
PSNR计算简单,直观不考虑视觉感知初步评估、有损压缩
SSIM符合人类视觉系统计算复杂度高需要感知质量评估的场景
SAM对光照变化不敏感主要适用于多光谱数据高光谱图像处理、遥感

选择建议

  • 如果追求计算效率和简单性,选择PSNR
  • 如果需要更符合人类视觉感知的评估,选择SSIM
  • 如果处理高光谱或多光谱图像,选择SAM
  • 在实际应用中,建议结合多种指标进行综合评估

6. 总结

PSNR、SSIM和SAM是图像质量评价中的重要指标,各有优缺点和适用场景。在实际应用中,我们应根据具体需求选择合适的评价指标,或结合多种指标进行综合评估,以获得更全面、客观的图像质量评价结果。


希望本文对你理解这些图像质量评价指标有所帮助。如有疑问,欢迎在评论区留言讨论!

相关文章:

【计算机视觉】三种图像质量评价指标详解:PSNR、SSIM与SAM

图像质量评价指标详解:PSNR、SSIM与SAM 文章目录 图像质量评价指标详解:PSNR、SSIM与SAM1. 峰值信噪比(PSNR)1.1 数学定义1.2 特点与局限性 2. 结构相似性指数(SSIM)2.1 数学定义2.2 特点与应用 3. 光谱角度映射器(SAM)3.1 数学定义3.2 特点与应用 4. Py…...

轻舟系列FPGA加速卡:大模型分布式训练中的高效协同者

在超大规模模型(如千亿级参数)的分布式训练中,计算、存储与通信的协同优化是突破性能瓶颈的关键。绿算技术公司的轻舟系列FPGA加速卡凭借其低延迟、高能效和可编程特性,能够成为分布式训练架构中的异构加速节点。其在训练集群中的…...

C++20 小语法

这个提案允许在static_assert和if constexpr中从整形转换为布尔类型。 以下表格就可以表示所有内容。 对于严格的C 编译器来说,以前在这种情境下int无法向下转换为bool,需要手动强制转换, C23 这一情况得到了改善。 对于严格的C编译器来说&a…...

LM393比较器的比较翻转电压不对

问个问题,用的LM393比较器,3.3V供电,比较器输出上拉到3.3V, V给的基准2.8V,V-电压从1V升到2.3V,比较器就输出0V了,按理论超过2.8V才翻转到0V的 根据问题描述和电路分析,比较器LM393…...

解决 shadui组件库Popover 点击后会消失

react用了shadui组件库 <Popover><PopoverTrigger><div className"text-operation-item" onClick{props.callback}><img src{props.imgSrc} width{20} height{20} /></div></PopoverTrigger><PopoverContent className"…...

国联股份卫多多与北京慧闻科技(集团)签署战略合作协议

4月27日&#xff0c;北京慧闻科技&#xff08;集团&#xff09;有限公司&#xff08;以下简称“慧闻科技”&#xff09;销售总监王兴卓一行到访国联股份卫多多&#xff0c;同卫多多/纸多多副总裁、产发部总经理段任飞&#xff0c;卫多多机器人产业链总经理桂林展开深入交流&…...

从数据到决策:如何使用Python进行自动驾驶数据分析

从数据到决策:如何使用Python进行自动驾驶数据分析 大家好,我是Echo_Wish,今天来和大家聊一聊在自动驾驶领域中,如何通过Python进行数据分析。随着自动驾驶技术的不断发展,数据分析在这一领域的作用越来越重要。从传感器数据的处理到模型的训练和优化,Python在自动驾驶数…...

IIS服务器提示ERR_HTTP2 PROTOCOL ERROR解决方案

今天我的淘宝店来了一个客户&#xff0c;说小程序苹果访问没问题&#xff0c;安卓系统访问出现ERR HTTP2 PROTOCAL ERROR的错误见下图 方法供大家闭坑步骤&#xff1a;通过注册表修改(高级) 打开注册表编辑器 (regedit) 导航到&#xff1a; HKEY_LOCAL_MACHINE\SYSTEM\Current…...

Django的异步任务队列管理_Celery

1 基本原理 Celery 是一个异步任务队列&#xff0c;能够将耗时操作&#xff08;如发邮件、处理图片、网络爬虫等&#xff09;从 Django 主线程中分离出来&#xff0c;由后台的 worker 处理&#xff0c;避免阻塞请求。Celery 作为独立运行的后台进程&#xff08;Worker&#xf…...

Ubuntu18.04安装IntelliJ IDEA2025步骤

1.下载linux版本的idea 复制下面链接到虚拟机浏览器 下载 IntelliJ IDEA 下载好后&#xff0c;你的文件里会多一个文件&#xff0c;如下图 2.解压并运行Idea 2.1在/usr/local/路径下新建安装目录IDEA&#xff1a; 打开终端输入以下命令&#xff1a; sudo mkdir -p /usr/loc…...

LLM - Large Language Model

回顾2024&#xff1a;与LLM又相伴一年的经历与思考 - 知乎万字长文入门大语言模型&#xff08;LLM&#xff09; - 知乎“大模型本质就是两个文件&#xff01;”特斯拉前AI总监爆火LLM科普&#xff0c;时长1小时&#xff0c;面向普通大众 - 知乎大模型本质及趋势剖析&#xff0c…...

解决Ubuntu20.04重启出现显卡驱动异常的问题(操作记录)

一、问题情况 电脑异常断电&#xff0c;重启后&#xff0c;显示界面异常&#xff0c;显卡驱动已丢失。 二、操作流程 1、查看安装显卡驱动 ls /usr/src | grep nvidia 记住该驱动&#xff0c;我的是nvidia-550.127.05 2、安装dkms&#xff08;如果没有&#xff09; sudo …...

23.开关电源干扰控制的EMC改善措施

开关电源干扰控制的EMC改善措施 1. 开关电源的EMI干扰机理2. 钳位抑制EMI3. 阻容吸收抑制EMI4. 波形整形抑制EMI 1. 开关电源的EMI干扰机理 2. 钳位抑制EMI 只能抑制Ts阶段。 3. 阻容吸收抑制EMI 4. 波形整形抑制EMI...

新能源汽车声纹监测技术的发展趋势是什么?

新能源汽车声纹监测技术有以下发展趋势&#xff1a; 智能化与自动化程度不断提高 故障自动诊断与预警&#xff1a;未来声纹监测系统将能够更加准确地自动识别和分析新能源汽车各部件的声纹特征变化&#xff0c;不仅能检测出故障&#xff0c;还能对故障的发展趋势进行预测&…...

如何获取按关键字搜索京东商品详情(代码示例)

在电商领域&#xff0c;获取京东商品的详细信息对于市场分析、选品上架、库存管理和价格策略制定等方面至关重要。京东作为国内知名的电商平台&#xff0c;提供了丰富的商品资源。通过 Python 爬虫技术&#xff0c;我们可以高效地获取京东商品的详细信息&#xff0c;包括商品名…...

C#中构造器及属性的加载顺序

一.基本原则: 先加载静态构造函数和静态字段,后加载普通构造函数和普通字段;先加载基类再加载子类; 二.具体的加载顺序: 父类静态字段--->父类静态构造函数--->子类静态字段--->子类静态构造函数--->父类实例字段---> 父类实例构造函数--->子类实例字段-…...

vue项目中如何使用markdown编辑器

在开发中,编辑markdown和回显markdown都是常见的需求。在vue(2.x和3.x都可以)中可以使用mavon-editor这个第三方依赖包。示例很简单易懂。 安装 npm install mavon-editor 注册 在main.js中注册这个组件 import Vue from vue import mavonEditor from mavon-editor impor…...

Python爬虫(9)Python数据存储实战:基于pymysql的MySQL数据库操作详解

目录 一、背景与核心价值二、pymysql核心操作详解2.1 环境准备2.2 数据库连接与基础操作2.3 事务处理与错误回滚2.4 高级功能&#xff1a;批量插入与性能优化 三、pymysql进阶技巧3.1 连接池管理&#xff08;推荐使用DBUtils&#xff09;3.2 SQL注入防御3.3 与ORM框架对比 四、…...

WPF之Button控件详解

文章目录 1. 引言2. Button控件基础Button类定义 3. Button控件的核心属性3.1 Content属性3.2 IsDefault属性3.3 IsCancel属性3.4 其他常用属性 4. 按钮样式与模板自定义4.1 简单样式设置4.2 使用Style对象4.3 触发器使用4.4 使用ControlTemplate完全自定义4.5 按钮视觉状态 5.…...

如何查看电脑电池使用情况

第一步打开cmd&#xff1a; 在键盘上按下winr 或者在搜索框中输入cmd 点击命令提示符 进入命令框 第二步输入命令&#xff1a; powercfg/batteryreport 出现如下情况 第三部找到对应电池报告进行查看&#xff1a; 在对应路径下找到电池报告 点击battery-report.html 到此…...

软考-软件设计师中级备考 6、数据结构 图

1. 有向图 有向图是由顶点集合 V 和有向边集合 E 组成的图结构。在有向图中&#xff0c;边是有方向的&#xff0c;即从一个顶点指向另一个顶点&#xff0c;通常用有序对 (u, v) 表示&#xff0c;其中 u 是边的起始顶点&#xff0c;v 是边的终止顶点。例如&#xff0c;在一个表…...

Label Studio 软件介绍及安装使用说明

背景说明 在做AI项目建模的时候&#xff0c;往往需要数据标注工作&#xff0c;比较常用的数据标注软件是Labeling或者Labelme,这两个都是离线的单独标注软件&#xff0c;使用起来是比较方便的&#xff0c;也是入门级学者比较适合的软件&#xff0c;然而有时候我们数据标注的数据…...

Azure 数字孪生是什么?

“Azure 数字孪生”是一项平台即服务 (PaaS) 产品/服务&#xff0c;它能够创建基于整个环境的数字模型的孪生图&#xff0c;这些图可能是建筑物、工厂、农场、能源网络、铁路、体育场馆&#xff0c;甚至整个城市。 这些数字模型可用于获取洞察力&#xff0c;以推动产品改进、运…...

界面控件DevExpress WPF v25.1预览 - AI功能增强(语义搜索)

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…...

【神经网络与深度学习】五折交叉验证(5-Fold Cross-Validation)

引言 五折交叉验证&#xff08;5-Fold Cross-Validation&#xff09;是一种广泛应用于机器学习模型性能评估的技术&#xff0c;通过多次实验确保模型的评估结果更加稳定、可靠&#xff0c;同时最大限度地利用有限的数据资源。它将数据分成若干子集&#xff0c;交替作为训练集和…...

Linux权限概念讲解

1. 用户类型 1.1 用户分类 在Linux里面用户分为两类&#xff0c;一种是超级用户&#xff08;root&#xff09;&#xff0c;一种是普通用户。 超级用户只有一个&#xff0c;而普通用户可以有很多个。 如果我们在root用户状态下想要变成普通用户&#xff0c;我们可以使用命令…...

网络安全零基础培训 L1-8 PHP基础语法

文章目录 1 认识PHP1.1 PHP简介1.2 主要的特点1.3 跨平台性1.4 与数据库的良好集成1.5 开源和社区支持1.6 应用场景1.6.1 网站开发1.6.2 内容的管理程序1.6.3 Web应用程序开发1.6.4 为什么学习了解PHP 2 PHP的基础语法2.1 创建第一个PHP程序2.2 如何写注释2.3 PHP的变量2.4 PHP…...

鸿蒙 长列表加载性能优化

长列表加载性能优化 针对长列表加载这一场景&#xff0c;对列表渲染时间、页面滑动帧率、应用内存占用等方面带来优化&#xff0c;提升性能和用户体验的手段有如下 4 种&#xff1a; 懒加载&#xff1a;提供列表数据按需加载能力&#xff0c;解决一次性加载长列表数据耗时长、…...

第十二届蓝桥杯 2021 C/C++组 卡片

目录 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 思路&#xff1a; 思路详解&#xff1a; 代码&#xff1a; 代码详解&#xff1a; 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 卡片 - 蓝桥云课 思路&#xff1a; 思路详解&#…...

vscode 使用gitcode团队管理项目

1、下载安装vscode https://code.visualstudio.com/Download 2、安装git 3、在vscode中安装GitLens插件 4、打开终端 点击会显示当前更改的项目 5、提交更改的文件&#xff0c;会提示输入用户名、密码&#xff0c;这里的密码即是令牌&#xff0c;令牌在第一次创建的时候显…...

uniapp+vue3+ts 使用canvas实现安卓端、ios端及微信小程序端二维码生成及下载

加粗样式uniapp多端生成带二维码海报并保存至相册的实现 在微信小程序开发中&#xff0c;我们常常会遇到生成带有二维码的海报并保存到手机相册的需求&#xff0c;比如分享活动海报、产品宣传海报等。今天就来和大家分享一下如何通过代码实现这一功能。 准备工作 在开始之前&am…...

vue mixin混入与hook

mixin混入是 ‌选项式 API‌&#xff0c;在vue3-Composition API <script setup> 中无法直接使用&#xff0c;需通过 setup() 函数转换 vue2、vue3选项式API: // mixins/mixin.js export const mixin {methods: {courseType(courseLevel) {const levelMap {1: 初级,…...

《Masked Autoencoders Are Scalable Vision Learners》---CV版的BERT

目录 一、与之前阅读文章的关系&#xff1f; 二、标题&#xff1a;带掩码的自auto编码器是一个可拓展的视觉学习器 三、摘要 四、核心图 五、结果图 六、不同mask比例对比图 七、“Introduction” (He 等, 2021, p. 1) 引言 八、“Related Work” (He 等, 2021, p. 3)相…...

(云计算HCIP)HCIP全笔记(十三)本篇介绍虚拟化技术,内容包含:虚拟化资源、虚拟化过程、I/O虚拟化、虚拟化架构KVM和Xen介绍、主流虚拟化技术介绍

1. 虚拟化资源 1.1 虚拟化对象 CPU虚拟化&#xff1a; 目标是使虚拟机上的指令能被正常执行&#xff0c;且效率接近物理机 内存虚拟化&#xff1a; 目标是能做好虚拟机内存空间之 间的隔离&#xff0c;使每个虚拟机都认为自己拥有了整个内存地址&#xff0c;且效率页能接近物理…...

C++核心编程:类与对象全面解析

C核心编程&#xff1a;类与对象全面解析 大家好&#xff01;今天我要和大家深入探讨C面向对象编程中最核心的概念&#xff1a;类与对象。&#x1f468;‍&#x1f4bb; 这是我们迈向高级C开发的第一步&#xff0c;掌握好这部分内容&#xff0c;对未来学习更高级的设计模式和框…...

Linux基础命令和文件系统结构:从入门到实践

目录 1. 引言 2. Linux文件系统结构概述 2.1 根目录 ​编辑 2.2 常见目录介绍&#xff1a; 1. /home&#xff1a;用户的家目录 2. /etc&#xff1a;存放配置文件的目录 3. /var&#xff1a;可变数据 4. /bin 和 /sbin&#xff1a;常见命令和系统管理工具 5. /tmp&…...

「Mac畅玩AIGC与多模态05」部署篇03 - 在 Mac 上部署本地向量化模型(Embedding Models)

一、概述 本篇介绍如何在 macOS 环境下,为 Dify 平台部署本地向量化模型(Embedding Models),支持知识库文档向量化、语义检索与智能体上下文增强。向量化模型是实现知识库问答与 RAG(检索增强生成)应用的基础组件。 二、部署流程 1. 环境准备 确认 Docker Desktop 正常…...

Java-Optional类

介绍 Optional是 Java 8 引入的一个类&#xff0c;用于解决空指针异常问题。它本质上是一个容器类&#xff0c;可以包含或不包含一个非空值。 示例 创建Optional对象 Optional.of(T value)&#xff1a;创建一个包含非空值的Optional对象。如传入null值&#xff0c;会抛出Nu…...

Android 热点开发调试总结

Android 热点开发调试总结 文章目录 Android 热点开发调试总结一、前言二、热点开发1、开关和默认配置wifi和热点配置信息保存的位置&#xff1a; 2、主要流程3、相关日志4、相关广播5、demo示例 三、其他1、Android 热点开发调试小结2、其他热点相关知识小结&#xff08;1&…...

【“星瑞” O6 评测】 — llm CPU部署对比高通骁龙CPU

前言 随着大模型应用场景的不断拓展&#xff0c;arm cpu 凭借其独特优势在大模型推理领域的重要性日益凸显。它在性能、功耗、架构适配等多方面发挥关键作用&#xff0c;推动大模型在不同场景落地 1. CPU对比 星睿 O6 CPU 采用 Armv9 架构&#xff0c;集成了 Armv9 CPU 核心…...

快乐数(双指针解法)

题目链接202. 快乐数 - 力扣&#xff08;LeetCode&#xff09; 题目拆解 1 取一个正整数每一位的平方和为&#xff0c;如果为1那么直接可以判定为快乐数&#xff0c;如果不为1&#xff0c;就重复这个过程&#xff0c;直到出现1 2 实际上&#xff0c;这道题只有两种情况&#xf…...

【Vue3-Bug】中路由加载页面直接显示空白

Vue3中路由加载页面直接显示空白 没有子路由 路由定义不能重复&#xff0c;请自己查看数据在main.js(或者)mina.ts入口文件中&#xff0c;需要将router的注入到vue中的执行放在&#xff0c;vue挂在元素之前 // 顺序不能变 app.use(router) app.mount(#app)在App.vue中 // 在…...

线性代数——行列式⭐

目录 一、行列式的定义⭐ 1-1、三阶行列式练习 1-2、下面介绍下三角行列式、上三角行列式、对角行列式 ​编辑 二、行列式的性质 2-1、性质1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6 ​编辑 2-2、性质7 2- 3、拉普拉斯定理、克莱姆法则 三…...

flume----初步安装与配置

目录标题 **flume的简单介绍**⭐flume的**核心组件**⭐**核心特点** **安装部署**1&#xff09;**解压安装包**2&#xff09;**修改名字** **&#xff08;配置文件时&#xff0c;更方便&#xff09;****3&#xff09;⭐⭐配置文件**4&#xff09;**兼容Hadoop**5&#xff09;**…...

vscode源代码管理Tab-文件右侧标志(M、A 等)的含义

Git 常用标志(M、A 等)的含义 在 VSCode 的源代码管理&#xff08;Source Control&#xff09;标签页中&#xff0c;文件右侧显示的 Monaco 装饰徽章&#xff08;Badge&#xff09;&#xff08;如 M、A 等&#xff09;&#xff0c;本质上是对 Git 文件状态标志 的可视化呈现。…...

【力扣刷题实战】丢失的数字

大家好&#xff0c;我是小卡皮巴拉 文章目录 目录 力扣题目&#xff1a;丢失的数字 题目描述 解题思路 问题理解 算法选择 具体思路 解题要点 完整代码&#xff08;C&#xff09; 兄弟们共勉 &#xff01;&#xff01;&#xff01; 每篇前言 博客主页&#xff1a;小…...

具身智能机器人的应用场景及最新进展

具身智能机器人正通过“感知-学习-决策-行动”的闭环能力&#xff0c;重塑全球各行业的生产与服务模式。以下是其在当今世界的典型应用场景及最新进展&#xff1a; 一、工业制造&#xff1a;柔性生产与智能运维 高精度装配与检测 特斯拉Optimus通过双目视觉与惯性测量单元&…...

网络安全怎么入门?快速了解

网络安全是一个快速发展的领域&#xff0c;入门需要系统化的学习和实践。以下是适合零基础或转行者的分阶段学习路径&#xff0c;涵盖必备知识、学习资源、实战方法和职业方向&#xff1a; 一、基础阶段&#xff08;1-3个月&#xff09; 1. 掌握核心基础知识 计算机网络&#…...

STM32N6570-DK ISP调试

STM32N6570-DK之ISP调试应用 准备工作-下载安装软件包:一、使用STM32CubeProgrammer给板子烧入STM32N6_ISP_IQTune_App_revC01-v1.1.0-trusted.bin。二、打开STM32 ISP IQTune.exe ,出现可连接端口:三、根据教程进行相应调试:准备工作-下载安装软件包: https://www.st.co…...

Nacos源码—1.Nacos服务注册发现分析一

大纲 1.客户端如何发起服务注册 发送服务心跳 2.服务端如何处理客户端的服务注册请求 3.注册服务—如何实现高并发支撑上百万服务注册 4.内存注册表—如何处理注册表的高并发读写冲突 1.客户端如何发起服务注册 发送服务心跳 (1)Nacos客户端项目启动时为什么会自动注册服…...