峰值信噪比公式_峰值信噪比&灰度图片&彩色图片&HSI&matlab

峰值信噪比(PSNR)是衡量图像处理效果的重要指标,通常用于比较处理前后的图像差异。PSNR值越高,表示图像质量越好。在30dB到50dB之间时,人眼难以察觉图像差异。本文介绍了PSNR的计算公式,特别是在灰度、彩色图像以及HSI数据中的应用,并提供了MATLAB的计算示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是峰值信噪比

峰值信噪比[1]英语:Peak signal-to-noise ratio,常缩写为PSNR)。简单来讲是用来衡量两幅图片的差异的。一幅图片A,经过一般操作之后得到图片B,一般是与A同样大小。PSBR的单位是db(分贝)

图像与影像压缩中典型的峰值讯噪比值在 30dB 到 50dB 之间,愈高愈好。

  • PSNR接近 50dB ,代表压缩后的图像仅有些许非常小的误差。
  • PSNR大于 30dB ,人眼很难查觉压缩后和原始影像的差异。
  • PSNR介于 20dB 到 30dB 之间,人眼就可以察觉出图像的差异。
  • PSNR介于 10dB 到 20dB 之间,人眼还是可以用肉眼看出这个图像原始的结构,且直观上会判断两张图像不存在很大的差异。
  • PSNR低于 10dB,人类很难用肉眼去判断两个图像是否为相同,一个图像是否为另一个图像的压缩结果。

723358d89c7456895fdfaaa591832582.png

峰值信噪比在灰度图片、彩色图片、HSI数据中的计算公式

<think>好的,我现在需要帮助用户查找关于HAL_RCC_OscConfig函数的用法或示例。用户提到的引用中有一些关于STM32的配置信息,可能和RCC有关。首先,我应该回忆一下HAL_RCC_OscConfig的作用,这个函数通常用于配置STM32的振荡器,比如HSE、HSI、LSE、LSI等时钟源。 用户提供的引用中有引用[2]提到了HAL_DMAEx_MultiBufferStart的使用,引用[3]提到RCC配置使用外部晶振,引用[4]提到osDelay函数。虽然这些引用不一定直接相关,但引用[3]中的RCC配置可能涉及HAL_RCC_OscConfig。我需要检查是否有提到具体的结构体设置。 接下来,我需要确定如何正确使用HAL_RCC_OscConfig。通常,这个函数需要一个指向RCC_OscInitTypeDef结构体的指针,该结构体包含振荡器类型的配置,比如是否启用HSE、调整HSI的校准值等。用户可能需要一个代码示例,展示如何初始化这些参数。 另外,用户可能需要知道常见的配置步骤,比如启用HSE并等待其稳定,设置PLL参数等。需要确保结构体成员正确设置,例如OscillatorType指定要配置的振荡器类型,HSEState设置HSE的状态,HSIState同理,以及PLL的相关配置。 同时,要注意错误处理,检查函数的返回值是否为HAL_OK,以确保配置成功。可能还需要在配置完Osc之后调用HAL_RCC_ClockConfig来配置系统时钟。 现在,我应该整理这些信息,给出一个清晰的步骤说明和代码示例,确保语法正确,并引用相关的资料。例如,引用[3]中提到RCC配置使用外部晶振,这可能与HSE配置有关,可以作为参考来源之一。 最后,生成相关问题,帮助用户进一步了解RCC配置的其他方面,比如时钟树配置、错误处理、不同系列之间的差异,以及如何验证配置是否成功。这些问题应该与用户的当前查询相关,并引导他们深入学习。</think>### 关于`HAL_RCC_OscConfig`的用法及示例 `HAL_RCC_OscConfig`是STM32 HAL库中用于配置系统时钟源(如HSE、HSI、LSE、LSI等)和PLL的核心函数。以下是具体用法和示例: --- #### **1. 函数功能** - 配置振荡器(OSC)和锁相环(PLL)参数,例如启用外部高速晶振(HSE)、调整内部高速时钟(HSI)校准值等。 - 需要配合`RCC_OscInitTypeDef`结构体使用,定义时钟源的类型及参数[^3]。 --- #### **2. 代码示例** ```c RCC_OscInitTypeDef RCC_OscInitStruct = {0}; // 配置HSE和PLL RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; // 选择HSE作为时钟源 RCC_OscInitStruct.HSEState = RCC_HSE_ON; // 启用HSE RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; // 启用PLL RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; // PLL源选择HSE RCC_OscInitStruct.PLL.PLLM = 4; // HSE分频系数M(假设输入8MHz,输出为8/4=2MHz) RCC_OscInitStruct.PLL.PLLN = 200; // PLL倍频系数N(2MHz * 200 = 400MHz) RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; // PLLP分频(400MHz / 2 = 200MHz) RCC_OscInitStruct.PLL.PLLQ = 8; // PLLQ分频(用于USB等外设) // 应用配置并检查结果 if (HAL_RCC_OscConfig(&amp;RCC_OscInitStruct) != HAL_OK) { Error_Handler(); // 配置失败处理 } ``` --- #### **3. 关键参数说明** - **`OscillatorType`**:指定要配置的时钟源类型,例如`RCC_OSCILLATORTYPE_HSE`、`RCC_OSCILLATORTYPE_HSI`。 - **`HSEState`**:HSE状态(`RCC_HSE_ON`/`RCC_HSE_OFF`)。 - **`HSIState`**:HSI状态及校准值(例如`HSICalibrationValue`)。 - **`PLL`相关参数**:包括分频系数(`PLLM`)、倍频系数(`PLLN`)、输出分频(`PLLP`/`PLLQ`)等。 --- #### **4. 注意事项** - 配置HSE时需确保外部晶振硬件已正确连接。 - 修改时钟源后,通常需调用`HAL_RCC_ClockConfig`更新系统时钟[^4]。 - 若配置失败(如HSE未就绪),需通过返回值处理异常。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值