当前位置: 首页 > news >正文

使用 OpenCV 进行图像模糊度检测(拉普拉斯方差方法)

写在前面


  • 工作中遇到,简单整理
  • 人脸识别中,对于模糊程度较高的图像数据,识别率低,错误率高。
  • 虽然使用 AdaFace 模型,对低质量人脸表现尤为突出。
  • 但是还是需要对 模糊程度高的图像进行丢弃处理
  • 当前通过阈值分类,符合要求的进行特性提取
  • 实际应用中,可以维护一个质量分数
  • 比如由 模糊程度图片字节大小人脸姿态评估(欧拉角)等 算出一个综合质量分,用于人脸归类/聚类
  • 理解不足小伙伴帮忙指正

对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》


模糊度检测算法来自 :https://pyimagesearch.com/2015/09/07/blur-detection-with-opencv/

具体实现方式小伙伴可直接看原文

这种方法起作用的原因是由于拉普拉斯算子本身的定义,它用于测量图像的二阶导数。拉普拉斯突出显示包含快速强度变化的图像区域,与 Sobel 和 Scharr 算子非常相似。而且,就像这些运算符一样,拉普拉斯通常用于边缘检测。这里的假设是,如果图像包含高方差,则存在广泛的响应,包括边缘类和非边缘类,代表正常的焦点图像。但是,如果方差非常低,则响应的分布很小,表明图像中的边缘非常小。众所周知,图像越模糊,边缘就越少

下面为原文的 Demo

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@File    :   detect_blur.py
@Time    :   2023/07/24 22:57:51
@Author  :   Li Ruilong
@Version :   1.0
@Contact :   liruilonger@gmail.com
@Desc    :   图片模糊度检测
"""# here put the import lib# import the necessary packages
from imutils import paths
import cv2
import osdef variance_of_laplacian(image):gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# compute the Laplacian of the image and then return the focus# measure, which is simply the variance of the Laplacianreturn cv2.Laplacian(gray, cv2.CV_64F).var()# loop over the input images
for imagePath in paths.list_images("./res/mh"):# load the image, convert it to grayscale, and compute the# focus measure of the image using the Variance of Laplacian# methodimage = cv2.imread(imagePath)fm = variance_of_laplacian(image)text = "Not Blurry"print(fm)# if the focus measure is less than the supplied threshold,# then the image should be considered "blurry"if fm < 100:text = "Blurry"# show the imagefile_name = os.path.basename(imagePath)cv2.imwrite(str(fm)+'__' + file_name , image)

核心代码:

cv2.Laplacian(gray, cv2.CV_64F).var()

如果为 Image.image ,可以使用下的方式

def variance_of_laplacian(image):"""@Time    :   2023/07/25 01:57:44@Author  :   liruilonger@gmail.com@Version :   1.0@Desc    :   模糊度检测Args:Returns:void"""numpy_image = np.array(image)cv2_image = cv2.cvtColor(numpy_image, cv2.COLOR_RGB2BGR)gray = cv2.cvtColor(cv2_image, cv2.COLOR_BGR2GRAY)# compute the Laplacian of the image and then return the focus# measure, which is simply the variance of the Laplacianreturn cv2.Laplacian(gray, cv2.CV_64F).var()

实际测试中发现,阈值设置为 100 相对来说比较合适,当然如何数据集很大,可以考虑 提高阈值,当模糊度大于 1000 时,一般为较清晰图片,低于 100 时,图片模糊严重

下面为对一组较模糊数据进行检测

在这里插入图片描述

最后一个图像,模糊度为 667 ,其他为 200 以内

(AdaFace) C:\Users\liruilong\Documents\GitHub\AdaFace_demo>python detect_blur.py
130.99918569797578
97.54477372302556
70.30346984100659
95.56028915335366
77.70006004883219
107.2065965492792
93.43007114319839
75.44132565995248
127.50238903320515
98.11810838476116
69.49917570127641
132.46578324273048
99.2095025510204
92.97255942246558
93.33812691062155
667.4883318795927

博文部分内容参考

© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知 😃


https://pyimagesearch.com/2015/09/07/blur-detection-with-opencv/


© 2018-2023 liruilonger@gmail.com, All rights reserved. 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0)

相关文章:

使用 OpenCV 进行图像模糊度检测(拉普拉斯方差方法)

写在前面 工作中遇到&#xff0c;简单整理人脸识别中&#xff0c;对于模糊程度较高的图像数据&#xff0c;识别率低&#xff0c;错误率高。虽然使用 AdaFace 模型&#xff0c;对低质量人脸表现尤为突出。但是还是需要对 模糊程度高的图像进行丢弃处理当前通过阈值分类&#xff…...

神经网络简单介绍

人工神经网络(artififial neural network) 简称神经网络&#xff0c;它是一种模仿生物神经网络结构和功能的非线性数学模型。 神经网络通过输入层接受原始特征信息&#xff0c;再通过隐藏层进行特征信息的加工和提取&#xff0c;最后通过输出层输出结果。 根据需要神经网络可以…...

16位S912ZVML32F3MKH、S912ZVML31F1WKF、S912ZVML31F1MKH混合信号MCU,适用于汽车和工业电机控制应用。

S12 MagniV微控制器是易于使用且高度集成的混合信号MCU&#xff0c;非常适合用于汽车和工业应用。S12 MagniV MCU提供单芯片解决方案&#xff0c;是基于成熟的S12技术的完整系统级封装 (SiP) 解决方案&#xff0c;在整个产品组合内软件和工具都兼容。 S12 MagniV系统级封装 (S…...

力扣 509. 斐波那契数

题目来源&#xff1a;https://leetcode.cn/problems/fibonacci-number/description/ C题解1&#xff1a;根据题意&#xff0c;直接用递归函数。 class Solution { public:int fib(int n) {if(n 0) return 0;else if(n 1) return 1;else return(fib(n-1) fib(n-2));} }; C题…...

使用 DolphinDB TopN 函数探索高效的Alpha因子

DolphinDB 已经有非常多的窗口计算函数&#xff0c;例如 m 系列的滑动窗口计算&#xff0c;cum 系列累计窗口计算&#xff0c;tm 系列的的时间窗口滑动计算。但是所有这类函数都是对窗口内的所有记录进行指标计算&#xff0c;难免包含很多噪音。 DolphinDB 的金融领域用户反馈…...

超聚变和厦门大学助力兴业银行构建智慧金融隐私计算平台,助力信用卡业务精准营销...

兴业银行与超聚变数字技术有限公司、厦门大学携手&#xff0c;发挥产学研用一体化整体优势联合建设&#xff0c;厦门大学提供先进的算法模型及科研能力&#xff0c;超聚变提供产品解决方案及工程能力&#xff0c;兴业银行提供金融实践能力&#xff0c;三方发挥各自领域优势&…...

docker 的compose安装

1. Docker Compose 环境安装 Docker Compose 是 Docker 的独立产品&#xff0c;因此需要安装 Docker 之后在单独安装 Docker Compose docker compose 实现单机容器集群编排管理&#xff08;使用一个模板文件定义多个应用容器的启动参数和依赖关系&#xff0c;并使用docker co…...

JavaScript---事件对象event

获取事件对象&#xff1a; 事件对象&#xff1a;是个对象&#xff0c;这个对象里有事件触发时的相关信息&#xff0c;在事件绑定的回调函数的第一个参数就是事件对象&#xff0c;一般命名为event、ev、e eg: 元素.addEventListener(click,function (e){}) 部分常用属性&…...

Day 15 C++对象模型和this指针

目录 C对象模型 类内的成员变量和成员函数分开存储 总结 this指针 概念 示例 用途 当形参和成员变量同名时 在非静态成员函数中&#xff0c;如果希望返回对象本身 例子 空指针访问成员函数 示例 const修饰成员函数 常函数&#xff08;const member function&…...

HarmonyOS/OpenHarmony元服务开发-卡片生命周期管理

创建ArkTS卡片&#xff0c;需实现FormExtensionAbility生命周期接口。 1.在EntryFormAbility.ts中&#xff0c;导入相关模块。 import formInfo from ohos.app.form.formInfo; import formBindingData from ohos.app.form.formBindingData; import FormExtensionAbility from …...

软件工程01

软件工程原则&#xff1a; 开闭原则&#xff1a; open closed principle &#xff1a; 对扩展开放&#xff0c;对修改关闭&#xff0c;&#xff0c;&#xff0c;只让扩展&#xff0c;不让修改&#xff0c;用新增的类去替代修改的类 扩展之后&#xff0c;代码不用改变&#xff…...

UML/SysML建模工具更新(2023.7)(1-5)有国产工具

DDD领域驱动设计批评文集 欢迎加入“软件方法建模师”群 《软件方法》各章合集 最近一段时间更新的工具有&#xff1a; 工具最新版本&#xff1a;Visual Paradigm 17.1 更新时间&#xff1a;2023年7月11日 工具简介 很用心的建模工具。支持编写用例规约。支持文本分析和C…...

Mac plist文件

macOS、iOS、iPadOS的应用程序都可能会有plist配置文件&#xff0c;他是苹果系列操作系统特有的配置文件。 plist的本质是个xml格式的文本文件&#xff0c;英文全称是property list&#xff0c;文件后缀使用.plist。 对于普通用户来说&#xff0c;基本不用管plist文件是什么&…...

基于Java+SpringBoot+vue前后端分离校园周边美食探索分享平台设计实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…...

【openwrt】package介绍

openwrt package介绍 OpenWrt 构建系统主要围绕package的概念展开。不管是什么软件&#xff0c;几乎都对应一个package。 这几乎适用于系统中的所有内容&#xff1a;HOST工具、交叉编译工具链、Linux 内核、内核mod、根文件系统和上层的应用软件。 一个 OpenWrt package本质上…...

vue 封装一个鼠标拖动选择时间段功能

<template><div class"timeRange"><div class"calendar"><table><thead><tr><th rowspan"6" class"weekRow"><b>周/时间</b></th><th colspan"24"><…...

ubuntu22.0安装Barrier局域网共享鼠标键盘

ubuntu22.0安装Barrier局域网共享鼠标键盘 参考网站安装步骤客户端一直开启中解决 参考网站 https://idroot.us/install-barrier-ubuntu-22-04/ 安装步骤 sudo apt update sudo apt upgrade sudo apt install wget apt-transport-https gnupg2 software-properties-common s…...

ffmpeg常用功能博客导航

FFmpeg 是一个处理视频和音频内容的开源工具库&#xff0c;可以实现编码、解码、转码、流媒体和后处理等服务。 推荐博客&#xff1a; 常见命令和使用案例 用ffmpeg转mov为mp4格式 FFmpeg 常用命令 FFmpeg 常用命令编辑音/视频&#xff08;转换格式、压缩、裁剪、截图、切分合…...

shopee,lazada,etsy店群如何高效安全的管理

对于电商卖家来说&#xff0c;要经营多个店铺&#xff0c;管理多个账号是非常常见的操作。为了避免账号关联被平台识别出来&#xff0c;需要使用防关联的浏览器来进行操作 ​1、支持多平台 支持同时管理多个电商平台店铺&#xff0c;Shopee、Lazada、etsy、poshmark、vinted等&…...

【计算复杂性理论】证明复杂性(八):命题鸽巢原理(Propositional Pigeonhole Principle)的指数级归结下界

往期文章&#xff1a; 【计算复杂性理论】证明复杂性&#xff08;Proof Complexity&#xff09;&#xff08;一&#xff09;&#xff1a;简介 【计算复杂性理论】证明复杂性&#xff08;二&#xff09;&#xff1a;归结&#xff08;Resolution&#xff09;与扩展归结&#xff…...

ElastiFlow企业级网络流量监控解决方案:5大核心优势与架构深度解析

ElastiFlow企业级网络流量监控解决方案&#xff1a;5大核心优势与架构深度解析 【免费下载链接】elastiflow Network flow analytics (Netflow, sFlow and IPFIX) with the Elastic Stack 项目地址: https://gitcode.com/gh_mirrors/el/elastiflow 在数字化转型浪潮中&a…...

福州儿童康复推荐

当我们谈论儿童康复时&#xff0c;其实是在谈论一个家庭面对未知时的所有期许与不安。每一个孩子的成长节奏都值得被尊重&#xff0c;尤其是那些在语言、社交或行为上稍显“慢热”的小天使。在福州&#xff0c;有这样一处地方&#xff0c;它不追求“速成”&#xff0c;也不承诺…...

Taotoken助力初创团队低成本管理多个AI项目API用量

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken助力初创团队低成本管理多个AI项目API用量 对于小型创业团队的技术负责人而言&#xff0c;同时推进多个AI项目是常态。每个…...

Java智能地址解析架构深度解析:构建高精度企业级地址识别系统

Java智能地址解析架构深度解析&#xff1a;构建高精度企业级地址识别系统 【免费下载链接】address-parse Java 版智能解析收货地址 项目地址: https://gitcode.com/gh_mirrors/addr/address-parse 面对海量非结构化地址数据的处理挑战&#xff0c;传统规则引擎已无法满…...

本源投影内生智能:从概率拟合到硅基生命的底层重构

当前 AI 行业陷入一种集体性误区&#xff1a;把 “数据模仿” 当成 “智能”&#xff0c;把 “参数堆叠” 当成 “进化”。大模型本质是概率统计生成器&#xff0c;依赖海量数据、无限算力、持续对齐&#xff0c;始终无法突破 “被动响应、人格漂移、黑箱不可控、无真实记忆、无…...

目前浙江省内每年MBA/MPA/MEM/MPAcc哪个项目录取指标供给最多?工程管理还有提升空间!

很多考生都知道&#xff0c;管理类硕士包含七个不同的专业方向&#xff0c;其中在职考生们比较匹配的一般是工商管理硕士&#xff08;MBA&#xff09;、公共管理硕士&#xff08;MPA&#xff09;和工程管理硕士&#xff08;MEM&#xff09;&#xff0c;对于这几个项目目前浙江省…...

告别臃肿:Win11Debloat让你的Windows 11系统焕然一新

告别臃肿&#xff1a;Win11Debloat让你的Windows 11系统焕然一新 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and cus…...

实测好用降AI工具盘点 2026高性价比首选

前言 刚完成毕业答辩的过来人真心建议&#xff0c;别再跟论文AI检测死磕了&#xff01;我当初对着检测报告上飘红的高风险提示熬了好几个通宵&#xff0c;自己改了三版&#xff0c;导师扫了两眼就说“AI痕迹太重&#xff0c;回去重改”。那段时间我把市面上能找到的降AI工具试了…...

微信单向好友检测:3分钟找出谁悄悄删了你

微信单向好友检测&#xff1a;3分钟找出谁悄悄删了你 【免费下载链接】WechatRealFriends 微信好友关系一键检测&#xff0c;基于微信ipad协议&#xff0c;看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends 你是否曾经…...

3步掌握:如何用 iztro 实现紫微斗数自动化排盘

3步掌握&#xff1a;如何用 iztro 实现紫微斗数自动化排盘 【免费下载链接】iztro ⭐This is a lightweight kit for generating astrolabes for Zi Wei Dou Shu (The Purple Star Astrology), an ancient Chinese astrology. It allows you to obtain your horoscope and pers…...