随笔 - 321  文章 - 0  评论 - 6  阅读 - 34万

拉普拉斯算子用于模糊检测原理

转载:https://www.cnblogs.com/yanshw/p/15587091.html

原理简介

让图像的单一通道(大概灰度)和以下3 x 3的内核进行卷积

然后取相应的方差。

如果方差低于预先定义的阈值,则认为图像模糊;否则,图像不会模糊。

这种方法有效的原因是由于Laplacian算子本身的定义,它用于测量图像的二阶导数。

拉普拉斯算子突出显示图像中包含快速梯度变化的区域,很像Sobel和Scharr算子。和这些算子一样,Laplacian也经常用于边缘检测。

这里的假设是,如果一幅图像的方差较高,那么就说明图像有广泛的响应,包括类边和非类边,这是一幅正常的聚焦图像的代表。

但如果方差很低,那么就会有很小的响应扩散,这表明图像中几乎没有边缘。而图像越模糊,边缘就越少。所以可以用来检测是否模糊。

显然,这里的关键是设置正确的阈值,而阈值的设置与应用到的图像集相关。

如果阈值过低,你就会错误地将原本不模糊的图像标记为模糊。

如果阈值过高,那么实际上模糊的图像将不会被标记为模糊。这种方法只有在非常稳定的图像集(同一类型)中应用良好。

 

用法

示例代码,注意转换灰度图,但是我没转也没报错

复制代码
import cv2 as cv

image1 = cv.imread('imgs/tulips_1.jpg')
image1 = cv.cvtColor(image1, cv.COLOR_BGR2GRAY)
v1 = cv.Laplacian(image1, cv.CV_64F).var()

image2 = cv.imread('imgs/melian.png')
image2 = cv.cvtColor(image2, cv.COLOR_BGR2BGRA)
v2 = cv.Laplacian(image2, cv.CV_64F).var()

print(v1, v2)       # 757.6573775277777 302.6699592172611
复制代码

 

posted on   该用户很懒  阅读(245)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2021-05-23 iostat使用
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示