《LearnPython-Python学习笔记》-图像清晰度判断

admin 2025-11-07 01:28:21 编程 来源:ZONE.CI 全球网 0 阅读模式
  • 无参考图像的评价方法
    • Brenner 梯度函数
    • Tenengrad 梯度函数
    • Laplacian 梯度函数
    • SMD(灰度方差)函数
    • SMD2 (灰度方差乘积)函数
    • 方差函数
    • 能量梯度函数
    • Vollath函数
    • 熵函数
    • EAV点锐度算法函数
    • FFT 图像变换域
    • Reblur 二次模糊
    • NRSS 梯度结构相似度
  • 有参考图像的评价方法
    • SSIM
  • 参考

    为了能采集到包含信息更加丰富的图像,需要使被采集对象成像在相机有效焦面范围内。

    无参考图像的评价方法

    假设图像清晰度判断 - 图1代表图像图像清晰度判断 - 图2点的像素,图像清晰度判断 - 图3代表图像的清晰度参考系数。

    Brenner 梯度函数

    图像清晰度判断 - 图4

    Tenengrad 梯度函数

    图像清晰度判断 - 图5图像清晰度判断 - 图6图像清晰度判断 - 图7代表着图像清晰度判断 - 图8处的卷积。

    Laplacian 梯度函数

    和上面类似,只不过算子换成了拉普拉斯算子

    SMD(灰度方差)函数

    计算两个方向上的梯度之和图像清晰度判断 - 图9

    SMD2 (灰度方差乘积)函数

    为了提高在焦面附近的分辨率,我们可以把系数适当的放大,计算两个方向上梯度乘积图像清晰度判断 - 图10

    方差函数

    直接统计图像的方差,但此方法对噪声较为敏感图像清晰度判断 - 图11 图像清晰度判断 - 图12为图像的灰度均值

    能量梯度函数

    计算两个方向上的梯度平方和图像清晰度判断 - 图13

    Vollath函数

    图像清晰度判断 - 图14这个和方差计算比较类似,但是考虑到了领域之间的关系

    熵函数

    通过统计各灰度的出现频率,计算整幅图像含有的信息熵。图像清晰度判断 - 图15其中图像清晰度判断 - 图16是总的灰度等级,图像清晰度判断 - 图17代表灰度为图像清晰度判断 - 图18像素出现的概率

    EAV点锐度算法函数

    FFT 图像变换域

    直接在频域分析图像,高频成分越多越清晰。

    Reblur 二次模糊

    清晰图像模糊后高频部分能量损失比较大,而模糊图像再次模糊化后高频损失较小。比较滤波前后的梯度变化就能分析出其清晰程度。

    NRSS 梯度结构相似度

    低通滤波后,用SSIM判断两幅图像之间的相似程度。

    有参考图像的评价方法

    SSIM

    structural similarity index 评判两图像之间的相似程度。对比分析低通滤波前后图像的差异程度从而判断图像的清晰程度。 亮度对比图像清晰度判断 - 图19对比度图像清晰度判断 - 图20结构对比图像清晰度判断 - 图21最终的信息为图像清晰度判断 - 图22

    图像清晰度判断 - 图23可认为是某个系数的权重,一般为1就可以。图像清晰度判断 - 图24只是为了让系数不为零,可自选。

    参考

    • 无参考图像的清晰度评价方法
    • 百度百科 SSIM

    https://siyaofa.com/pages/algorithm/md/%E5%9B%BE%E5%83%8F%E6%B8%85%E6%99%B0%E5%BA%A6%E5%88%A4%E6%96%AD.html

    以太坊cppgolang区别 编程

    以太坊cppgolang区别

    以太坊是一种去中心化的开源平台,它采用智能合约技术,旨在构建和运行不受干扰的分布式应用程序。作为目前最受欢迎的区块链平台之一,以太坊提供了多种编程语言的支持,其
    progolang 编程

    progolang

    Go语言(Golang)是由Google开发的一门静态类型编程语言。作为一名专业的Golang开发者,我深知这门语言的优势和特点。在本文中,我将介绍Golang
    golangn个发送者 编程

    golangn个发送者

    Golang是一种开源的编程语言,由Google团队开发,旨在提高程序的并发性和简化软件开发过程。在Go语言中,有时需要向多个接收者发送信息。本文将介绍如何在G
    golang技能图谱 编程

    golang技能图谱

    从互联网行业的快速发展到人工智能技术的日益成熟,各种编程语言也应运而生。而在这众多的编程语言中,Golang(即Go)作为一门强大且高效的开发语言备受关注。Go
    评论:0   参与:  12