使用Python检测图片清晰度

今下午开会的时候, 无意间看到了一个需求类似于检测清晰度
晚上回来, 我们就使用Python去写一个检测清晰度的小例子
今晚的案例, 主要使用OpenCV和Laplacian算子
因为Laplacian算子可以用来检测图像中的边缘, 边缘的强度通常可以用来评估图像的清晰度

写之前呢, 准备了两张, 一张模糊的一张清晰的
现在安装opencv_python
pip install opencv_python
安装完成之后, 我们来验证一下是否安装成功

现在, 我们来写一函数, 用于后续判断清晰度

我们上面写了一个非常简单的例子, 剩下的检测就需要写到函数内部了, 函数接收了一个参数, 将路径进行了传入
接下来, 我们写一下内部逻辑
首先, 需要使用imread方法来读取指定路径的图像
image = cv2.imread(image_path)
随后, 我们需要将彩色图像转化为灰度图
grey_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
转化为灰度图之后, 就需要我们计算拉普拉斯方差
laplacian = cv2.Laplacian(grey_image, cv2.CV_64F).var()
我们打印一下这个变量, 可以清晰地看到两个的值不一样

这里得到的方差越大, 就表示边缘越明显, 也就越清晰, 既然这样, 比如我们给一个阈值, 当方差大于这个阈值之后, 我们就认为不是清晰的
这里, 我先给定一个阈值, 大家可以根据不同的图像进行调整

随后, 我们看下两者的打印结果是否正确

打印正确, 上面的小例子就算写完了
今天就讲解到这里
我们下期见

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/424870.html

联系我们
联系我们
分享本页
返回顶部