OpenCV-Python教程(7、Laplacian算子)
来源:互联网 发布:医疗数据采集平台 编辑:程序博客网 时间:2024/05/02 02:35
本篇文章介绍如何用OpenCV-Python来使用Laplacian算子。
提示:
- 转载请详细注明原作者及出处,谢谢!
- 本文介绍使用在OpenCV-Python中使用Laplacian函数
- 本文不介详细的理论知识,读者可从其他资料中获取相应的背景知识。笔者推荐清华大学出版社的《图像处理与计算机视觉算法及应用(第2版) 》。
Laplacian算子
图像中的边缘区域,像素值会发生“跳跃”,对这些像素求导,在其一阶导数在边缘位置为极值,这就是Sobel算子使用的原理——极值处就是边缘。如下图(下图来自OpenCV官方文档):
如果对像素值求二阶导数,会发现边缘处的导数值为0。如下(下图来自OpenCV官方文档):
Laplace函数实现的方法是先用Sobel 算子计算二阶x和y导数,再求和:(CSDN,你打水印,让我的公式怎么办?)
函数原型
在OpenCV-Python中,Laplace算子的函数原型如下:
dst = cv2.Laplacian(src, ddepth[, dst[, ksize[, scale[, delta[, borderType]]]]])如果看了上一篇Sobel算子的介绍,这里的参数应该不难理解。
前两个是必须的参数:
- 第一个参数是需要处理的图像;
- 第二个参数是图像的深度,-1表示采用的是与原图像相同的深度。目标图像的深度必须大于等于原图像的深度;
其后是可选的参数:
- dst不用解释了;
- ksize是算子的大小,必须为1、3、5、7。默认为1。
- scale是缩放导数的比例常数,默认情况下没有伸缩系数;
- delta是一个可选的增量,将会加到最终的dst中,同样,默认情况下没有额外的值加到dst中;
- borderType是判断图像边界的模式。这个参数默认值为cv2.BORDER_DEFAULT。
使用
这里还是以Sobel一文中的石狮作为测试图像,下面是测试代码:
#coding=utf-8import cv2import numpy as np img = cv2.imread("D:/lion.jpg", 0)gray_lap = cv2.Laplacian(img,cv2.CV_16S,ksize = 3)dst = cv2.convertScaleAbs(gray_lap)cv2.imshow('laplacian',dst)cv2.waitKey(0)cv2.destroyAllWindows()为了让结果更清晰,这里的ksize设为3,效果图如下:
有点像粉笔画,是吧。这是因为原图像未经过去噪就直接处理了。可以通过滤波一文中,使用低通滤波一节中高斯模糊来先处理一下再用拉普拉斯函数。
参考资料:
1、《Opencv2 Computer Vision Application Programming Cookbook》
2、《OpenCV References Manule》
- OpenCV-Python教程(7、Laplacian算子)
- OpenCV-Python教程(7、Laplacian算子)
- OpenCV-Python教程(6)(7)(8): Sobel算子 Laplacian算子 Canny边缘检测
- Python OpenCV -- Laplacian 算子(十)
- opencv Laplacian算子
- Opencv Laplacian算子
- OpenCV-Python教程(6、Sobel算子)
- OpenCV-Python教程(6、Sobel算子)
- OpenCV-Python教程(6、Sobel算子)
- OpenCV函数 Laplacian 算子实现
- Laplacian算子的使用Opencv
- vim+python+OpenCV学习七 : Sobel算子、Laplacian算子和Canny边缘检测
- Laplacian算子
- 边缘检测(5)Laplacian边缘算子
- Python OpenCV -- Sobel 算子(九)
- laplacian算子的运用
- laplacian算子的推导
- Laplacian算子图像提升
- Linux下安装RabbitMQ
- yii表单验证
- 在C#中调用GAMS代码
- android百度地图:ItemizedOverlay
- Java中数组的clone
- OpenCV-Python教程(7、Laplacian算子)
- 戏说文件系统之ext2
- ubuntu 64位 兼容 32位 库 到方法
- Windows CE系统开发,BSP包中的几个常见文件详解
- 制定测试计划的考虑因素
- c++面试题
- SQL语句执行效率及分析(note)
- 在PLSQL中,存储过程的输出参数(varchar2)最大支持多大
- struct sockaddr_in等Socket编程相关数据类型定义