[Python图像处理] Laplacian-of-Gaussian(LOG)算子

本文介绍了如何在Python中应用Laplacian-of-Gaussian(LOG)算子进行图像处理。通过详细代码解析,展示了LOG算子在图像边缘检测中的应用,帮助读者理解其工作原理。
摘要由CSDN通过智能技术生成

文中代码使用出处:

https://blog.csdn.net/Eastmount/article/details/89056240

记录一下代码详解:

"""
原理:首先对图像做高斯滤波,然后再求其拉普拉斯(Laplacian)二阶导数。
即图像与 Laplacian of the Gaussian function 进行滤波运算。
最后,通过检测滤波结果的零交叉(Zero crossings)可以获得图像或物体的边缘。
因而,也被简称为Laplacian-of-Gaussian (LoG)算子。
"""
import cv2
import numpy as np
import matplotlib.pyplot as plt    # Python的2D绘图库

# 读取图像
"""
RGB 与 BGR:R代表红,red ;  G代表绿,green; B代表蓝,blue。RGB模式就是,色彩数据模式,R在高位,G在中间,B在低位。BGR正好相反。
使用函数cv2.imread(filepath,flags)读入一副图片
filepath:要读入图片的完整路径
flags:读入图片的标志 
cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道
cv2.IMREAD_GRAYSCALE:读入灰度图片
cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道
import numpy as npimport cv2im
LOG算子是指Laplacian of Gaussian算子,用于进行边缘检测。在Python中,可以使用OpenCV库中的函数来实现LOG算子的应用。[3] 首先,需要导入cv2和matplotlib.pyplot库,并定义一个用于显示图片的函数image_show。然后,读取待处理的灰度图像,可以使用cv2.imread函数,并指定参数为0来读取灰度图像。接下来,可以使用cv2.Laplacian函数来应用Laplacian算子进行边缘检测,指定参数cv.CV_64F表示输出图像的深度为64位浮点数,ksize参数表示Laplacian算子的大小。最后,使用image_show函数显示处理后的图像。[3] 另外,如果想要使用LoG算子Laplacian of Gaussian)进行边缘检测,可以先使用cv2.GaussianBlur函数对图像进行高斯模糊处理,然后再使用cv2.Laplacian函数应用Laplacian算子进行边缘检测。具体代码如下所示:[3] ```python import cv2 as cv import matplotlib.pyplot as plt # 封装图片显示函数 def image_show(image): if image.ndim == 2: plt.imshow(image, cmap='gray') else: image = cv.cvtColor(image, cv.COLOR_BGR2RGB) plt.imshow(image) plt.show() if __name__ == '__main__': # 读取灰度图像 img_desk = cv.imread('desk.png', 0) image_show(img_desk) # Laplacian 算子,进行边缘检测 img_lap = cv.Laplacian(img_desk, cv.CV_64F, ksize=3) # 显示图像 image_show(img_lap) # LoG算子Laplacian of Gaussian 进行边缘检测 img_gaussian = cv.GaussianBlur(img_desk, (3, 3), 1) img_log = cv.Laplacian(img_gaussian, cv.CV_64F, ksize=3) # 显示图像 image_show(img_log) ``` 这段代码首先读取了名为'desk.png'的灰度图像,然后分别应用了Laplacian算子LoG算子进行边缘检测,并使用image_show函数显示处理后的图像。[3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值