博客
关于我
009 自动聚焦-图像清晰度评价
阅读量:667 次
发布时间:2019-03-15

本文共 1175 字,大约阅读时间需要 3 分钟。

Sobel算子

Sobel算子是一种用于计算图像灰度导数的算子,主要用于边缘检测。在图像处理中,Sobel算子通过计算像素的变化率来确定边缘,这样可以帮助识别图像的关键特征。Sobel算子的核心思想是计算图像在x方向和y方向上的一阶导数。

图像的清晰度与像素点的值有关,Sobel算子通过计算图像的微小区域内像素值的变化来评估清晰度。当图像清晰时,像素点之间的差异较大,经过Sobel算子处理后,像素值的和会更大,从而更清晰。

清晰度评价(Python实现)

以下是使用Python实现的Sobel算子清晰度评估方法:

import cv2 as cvimport numpy as npimport matplotlib.pyplot as pltimport mathimg = cv.imread('../images/girl.jpg')# gray_img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)def sum_sobel(src):    """    src: src input image    ddepth: output image depth, -1 mean same as input    dx: order of the derivative x    dy: order of the derivative y    """    dst = cv.Sobel(src, -1, 1, 0)    rows, cols, _ = dst.shape    return math.ceil(sum(cv.sumElems(dst)) / rows / cols)def my_blur(src, n):    dst = src    for _ in range(n):        dst = cv.blur(src, (8, 8))        src = dst    return dst

[%]图中展示了原始图像和多次模糊后的图像清晰度评估结果。通过计算Sobel算子处理后的像素值和,可以评估图像的清晰度。模糊次数越多,图像清晰度越低,像素值和也越小。相反,原始图像由于未经模糊,像素差异较大,清晰度评分较高。

在实现中,sum_sobel函数通过计算Sobel算子后的像素值总和,并将其均摊到每个像素点,得到清晰度评分。clearness = math.ceil(total / (rows * cols))。my_blur函数则通过迭代次模糊,生成模糊后的图像。

图中显示了不同模糊次数下的清晰度评分变化。结果表明,清晰度随着模糊次数增加而下降,说明模糊对图像清晰度的影响较为显著。通过观察图像模糊前的原始图像,我们可以看到模糊前图像边缘更明显,清晰度更高。

转载地址:http://khfqz.baihongyu.com/

你可能感兴趣的文章
ppt上的倒计时小工具_PPT中有哪些「看似很 LOW,实则惊艳」的小工具
查看>>
PPT添加视频的路径问题
查看>>
PPT美化插件 islide 安装过程问题“加载com加载项时运行出现错误”
查看>>
Prefix Tuning:详细解读Optimizing Continuous Prompts for Generation
查看>>
PreparedStatement 与Statement 的区别,以及为什么推荐使用 PreparedStatement ?
查看>>
PreparedStatement 查询 In 语句 setArray 等介绍。
查看>>
presentModalViewController显示半透明的一个view
查看>>
PresentViewController切换界面
查看>>
PyTorch之torch.utils.data.DataLoader解读
查看>>
PyTorch之DataLoader杂谈
查看>>
presto、druid、sparkSQL、kylin的对比分析
查看>>
Presto分布式大数据查询引擎
查看>>
Presto架构及原理
查看>>
Presto(一)集群部署
查看>>
Presto(二)开启安全认证
查看>>
Pricing procedure Steps and Details in SAP MM (from SCN)
查看>>
Prim 算法在不同权重范围内的性能分析及其实现
查看>>
Primace 5.0软件与KEIL单片机软件联合在线仿真步骤
查看>>
Prime Distance
查看>>
Prim求MST最小生成树
查看>>