用 OpenCV、Python 和拉普拉斯算子来计算图片中的模糊量

用 OpenCV、Python 和拉普拉斯算子来计算图片中的模糊量

一、前言

在做ocr识别的时候,面对一些模糊照片的识别正确率不是很高,所以有必要对被识别照片做模糊判别,而用拉普拉斯方差值可以以浮点数的形势反应图片的模糊情况。

二、直接上核心代码

import cv2
def detect_pic_blur(img_path):
		image = cv2.imread(img_path)
		gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)# 图片的灰度值
		fm = cv2.Laplacian(gray,cv2.CV_64F).var()
    print(f'图片的拉普拉斯值为:>>{fm}')
    # 阈值设置为 120,只有大于该值的图片才是清晰的(随实际情况而定)
    threshold = 120
    if fm <= threshold:
        return False
    return True

三、总结

拉普拉斯方差算法,该算法提供给我们一个浮点数来代表具体图像的“模糊度”。该算法快速,简单且易于使用——用拉普拉斯算子与输入图像做卷积然后计算方差即可。如果方差低于预定义阈值,图像就被标记为“模糊”。

必须明白阈值是一个很重要的待调整参数,针对每一个数据集都需要重新设定,阈值太低会导致正常图片被误断为模糊图片,阈值太高会导致模糊图片被误判为正常图片。

四、类似博文链接

http://www.iot-online.com/IC/tech/2016/050729760.html?from=timeline

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值