图像处理之LoG算子(高斯拉普拉斯)

LoG算子(高斯拉普拉斯算子)

LoG算子是由拉普拉斯算子改进而来。拉普拉斯算子是二阶导数算子,是一个标量,具有线性、位移不变性,其传函在频域空间的原点为0。所有经过拉普拉斯算子滤波的图像具有零平均灰度。但是该算子的缺点是对噪声具有敏感性,因此在实际应用中,一般先要对图像进行平滑滤波,再用拉氏算子进行图像的边缘检测。这就是LoG算子的产生的背景(最后的梯度表达式为高斯函数和原图像卷积,再去二阶微分算子)。

其滤波函数模型为:

常用的5*5卷积核模板为:

0 0 − 1 0 0 0 − 1 − 2 − 1 0 − 1 − 2 16 − 2 − 1 0 − 1 − 2 − 1 0 0 0 − 1 0 0 \] \\left\[ \\begin{array} {cccc} 0\&0\&-1\&0\&0\\\\ 0\&-1\&-2\&-1\&0\\\\ -1\&-2\&16\&-2\&-1\\\\ 0\&-1\&-2\&-1\&0\\\\ 0\&0\&-1\&0\&0\\\\ \\end{array} \\right\] 00−1000−1−2−10−1−216−2−10−1−2−1000−100 代码: ```python import numpy as np import cv2 from matplotlib import pyplot as plt import imgShow as iS #定义掩膜 m1 = np.array([[0,0,-1,0,0],[0,-1,-2,-1,0],[-1,-2,16,-2,-1],[0,-1,-2,-1,0],[0,0,-1,0,0]]) #LoG算子模板 img = cv2.imread("./originImg/Lena.tif") img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #边缘扩充 image = cv2.copyMakeBorder(img, 2, 2, 2, 2, borderType=cv2.BORDER_REPLICATE) # image = cv2.GaussianBlur(img,(3,3),4) rows = image.shape[0] cols = image.shape[1] temp = 0 image1 = np.zeros(image.shape) for i in range(2,rows-2): for j in range(2,cols-2): temp = np.abs( (np.dot(np.array([1, 1, 1, 1, 1]), (m1 * image[i - 2:i + 3, j - 2:j + 3]))) .dot(np.array([[1], [1], [1], [1], [1]]))) image1[i,j] = int(temp) if image1[i, j] > 255: image1[i, j] = 255 else: image1[i, j] = 0 iS.showImagegray(image1,img , 25, 15, 'LoG', 'origin', './LoG.jpg') # cv2.imshow("LoG",image1) # cv2.waitKey(0) ``` 检测结果为: ![在这里插入图片描述](https://file.jishuzhan.net/article/1683488582540464129/a6198e0f0ef8423b925f7b92b891216f.jpeg)

相关推荐
workflower10 分钟前
以光量子为例,详解量子获取方式
数据仓库·人工智能·软件工程·需求分析·量子计算·软件需求
壹氿14 分钟前
Supersonic 新一代AI数据分析平台
人工智能·数据挖掘·数据分析
张较瘦_21 分钟前
[论文阅读] 人工智能 | 搜索增强LLMs的用户偏好与性能分析
论文阅读·人工智能
我不是小upper32 分钟前
SVM超详细原理总结
人工智能·机器学习·支持向量机
Yxh1813778455438 分钟前
抖去推--短视频矩阵系统源码开发
人工智能·python·矩阵
取酒鱼食--【余九】1 小时前
rl_sar实现sim2real的整体思路
人工智能·笔记·算法·rl_sar
Jamence2 小时前
多模态大语言模型arxiv论文略读(111)
论文阅读·人工智能·语言模型·自然语言处理·论文笔记
归去_来兮2 小时前
图神经网络(GNN)模型的基本原理
大数据·人工智能·深度学习·图神经网络·gnn
爱吃饼干的熊猫2 小时前
PlayDiffusion上线:AI语音编辑进入“无痕时代”
人工智能·语音识别