本篇文章介绍如何用OpenCV-Python来使用Laplacian算子。

提示:

  • 转载请详细注明原作者及出处,谢谢!
  • 本文介绍使用在OpenCV-Python中使用Laplacian函数
  • 本文不介详细的理论知识,读者可从其他资料中获取相应的背景知识。笔者推荐清华大学出版社的《图像处理与计算机视觉算法及应用(第2版) 》。

Laplacian算子

图像中的边缘区域,像素值会发生“跳跃”,对这些像素求导,在其一阶导数在边缘位置为极值,这就是Sobel算子使用的原理——极值处就是边缘。如下图(下图来自OpenCV官方文档):

如果对像素值求二阶导数,会发现边缘处的导数值为0。如下(下图来自OpenCV官方文档):

Laplace函数实现的方法是先用Sobel 算子计算二阶x和y导数,再求和:(CSDN,你打水印,让我的公式怎么办?)

函数原型

在OpenCV-Python中,Laplace算子的函数原型如下:

[python] view plaincopy
  1. 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一文中的石狮作为测试图像,下面是测试代码:

[python] view plaincopy
  1. #coding=utf-8
  2. import cv2
  3. import numpy as np
  4. img = cv2.imread("D:/lion.jpg", 0)
  5. gray_lap = cv2.Laplacian(img,cv2.CV_16S,ksize = 3)
  6. dst = cv2.convertScaleAbs(gray_lap)
  7. cv2.imshow('laplacian',dst)
  8. cv2.waitKey(0)
  9. cv2.destroyAllWindows()

为了让结果更清晰,这里的ksize设为3,效果图如下:

有点像粉笔画,是吧。这是因为原图像未经过去噪就直接处理了。可以通过滤波一文中,使用低通滤波一节中高斯模糊来先处理一下再用拉普拉斯函数。

参考资料:

1、《Opencv2 Computer Vision Application Programming Cookbook》

2、《OpenCV References Manule》

如果觉得本文写的还可以的话,请轻点“顶”,您的支持是我写下去的动力之一。未完待续。。。如有错误请指正,本人会虚心接受并改正!谢谢!

OpenCV-Python教程(7、Laplacian算子)相关推荐

  1. OpenCV Python教程(3)(4)(5): 直方图的计算与显示 形态学处理 初级滤波内

    OpenCV Python教程(3.直方图的计算与显示) 本篇文章介绍如何用OpenCV Python来计算直方图,并简略介绍用NumPy和Matplotlib计算和绘制直方图 直方图的背景知识.用途 ...

  2. OpenCV Python教程(2、图像元素的访问、通道分离与合并)

    OpenCV Python教程之图像元素的访问.通道分离与合并 转载请详细注明原作者及出处,谢谢! 访问像素 像素的访问和访问numpy中ndarray的方法完全一样,灰度图为: [python] v ...

  3. opencv python教程简书_OpenCV-Python系列二:常用的图像属性

    对于图像,我们经常需要知道关于图像的特殊属性,比如宽度,高度,面积,像素点数目等等,那么在opencv-python中,这些信息如何获取呢? 本文结构: 1.基本图像属性 2. 对于opencv中的特 ...

  4. OpenCV Python教程(1、图像的载入、显示和保存)

    本文是OpenCV  2 Computer Vision Application Programming Cookbook读书笔记的第一篇.在笔记中将以Python语言改写每章的代码. PythonO ...

  5. opencv python教程简书_OpenCV-Python教程:27.图像转换

    理论 傅里叶变换用来分析多种过滤器的频率特征.对于图片,2D离散傅里叶变换(DFT)用来找频率范围.一个快速算法叫快速傅里叶变换(FFT)用来计算DFT. 对于正弦信号,x(t) = Asin(2πf ...

  6. opencv python教程简书_Python-OpenCV —— 基本操作一网打尽

    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.MacOS操作系统上.它轻量级而且高效--由一系列 C 函数和少量C++类构成,同时提供了Pyt ...

  7. opencv python教程-OpenCV4 Python 最新中文版官方教程来了(附下载)

    教程简介 OpenCV 是计算机视觉中经典的专用库,然而其中文版官方教程久久不来.近日,一款最新 OpenCV4.1 版本的完整中文版官方教程出炉,读者朋友可以更好的学习了解 OpenCV 相关细节. ...

  8. OpenCV Python教程系列

    参考: OpenCV - sunny2038的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/sunny2038/article/category/904451

  9. opencv python教程简书_OpenCV-Python教程:28.模板匹配

    理论 模板匹配是在一个大图里搜索和找模板图像位置的方法.OpenCV有个函数cv2.matchTemplate()来做这个.它吧模板图像在输入图像上滑动,对比模板和在模板图像下的输入图像块.它返回了一 ...

  10. opencv python教程简书_OpenCV-Python教程:57.图像修复

    基础 你们可能家里都会有一些老照片已经有黑点啊,划痕啊等.你有想过修复它们么?我们不能简单的在绘图工具里把他们擦除了就完了.因为这样只是把黑色的东西变成白色的而已,实际上没用.在这种情况下,会用到一种 ...

最新文章

  1. SSE-CMM5个级别划分概述
  2. 遇到的问题及解决方法
  3. 八款常用的 Python GUI 开发框架推荐
  4. C语言signal()函数(通过设置一个函数(回调函数)来处理捕获到异常信号时需要执行的操作)
  5. Prim和Dijkstra算法的区别
  6. 如何测试一个电梯,测试方案及测试用例
  7. php直播pk规则,直播源码中的主播PK功能是如何实现的
  8. 只用一个循环实现层序遍历
  9. 使用reflux进行react组件之间的通信
  10. MySQL 8.0安装记录
  11. CEF3研究(四)之javascript集成
  12. 《Adobe Illustrator CS6中文版经典教程(彩色版)》—第0课0.4节应用颜色
  13. 朋友圈一杠中间一个点_朋友圈只显示一条线 中间一个点 是被删除了么
  14. 江南春:在不确定的市场,找到确定性的增长
  15. 生成HTTPS协议需要的SSL证书
  16. 计算机三级网络技术(补充)
  17. w10计算机配置在哪看,win10如何查看电脑配置参数(一招查看电脑配置好坏)
  18. 世界上第一家咨询公司的发展历史
  19. 潭州学院html学习(day04)
  20. 仿真软件OriginPro之《文献图片取点方法》

热门文章

  1. Mac配置腾讯云服务器SSH秘钥免登陆
  2. IntelliJ IDEA如何去掉xml文件背景色
  3. 温故知新----css基础
  4. android示例程序剖析之记事本,Android实现记事本项目完整实例,附源代码
  5. debian9 linux的版本,Debian 9.4 发布,小版本更新
  6. solr6 mysql增量更新_solr 的全量更新与增量更新
  7. 计算机系统结构期末张晨曦,计算机系统结构(张晨曦)试题
  8. nyoj 610 定长覆盖 贪心问题系列
  9. php header带session,PHP接口跨域header头以及Session跨域方法
  10. python字典练习_python字典练习