OpenCV-Python教程(7、Laplacian算子)
本篇文章介绍如何用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-8
- import cv2
- import 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教程(3)(4)(5): 直方图的计算与显示 形态学处理 初级滤波内
OpenCV Python教程(3.直方图的计算与显示) 本篇文章介绍如何用OpenCV Python来计算直方图,并简略介绍用NumPy和Matplotlib计算和绘制直方图 直方图的背景知识.用途 ...
- OpenCV Python教程(2、图像元素的访问、通道分离与合并)
OpenCV Python教程之图像元素的访问.通道分离与合并 转载请详细注明原作者及出处,谢谢! 访问像素 像素的访问和访问numpy中ndarray的方法完全一样,灰度图为: [python] v ...
- opencv python教程简书_OpenCV-Python系列二:常用的图像属性
对于图像,我们经常需要知道关于图像的特殊属性,比如宽度,高度,面积,像素点数目等等,那么在opencv-python中,这些信息如何获取呢? 本文结构: 1.基本图像属性 2. 对于opencv中的特 ...
- OpenCV Python教程(1、图像的载入、显示和保存)
本文是OpenCV 2 Computer Vision Application Programming Cookbook读书笔记的第一篇.在笔记中将以Python语言改写每章的代码. PythonO ...
- opencv python教程简书_OpenCV-Python教程:27.图像转换
理论 傅里叶变换用来分析多种过滤器的频率特征.对于图片,2D离散傅里叶变换(DFT)用来找频率范围.一个快速算法叫快速傅里叶变换(FFT)用来计算DFT. 对于正弦信号,x(t) = Asin(2πf ...
- opencv python教程简书_Python-OpenCV —— 基本操作一网打尽
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.MacOS操作系统上.它轻量级而且高效--由一系列 C 函数和少量C++类构成,同时提供了Pyt ...
- opencv python教程-OpenCV4 Python 最新中文版官方教程来了(附下载)
教程简介 OpenCV 是计算机视觉中经典的专用库,然而其中文版官方教程久久不来.近日,一款最新 OpenCV4.1 版本的完整中文版官方教程出炉,读者朋友可以更好的学习了解 OpenCV 相关细节. ...
- OpenCV Python教程系列
参考: OpenCV - sunny2038的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/sunny2038/article/category/904451
- opencv python教程简书_OpenCV-Python教程:28.模板匹配
理论 模板匹配是在一个大图里搜索和找模板图像位置的方法.OpenCV有个函数cv2.matchTemplate()来做这个.它吧模板图像在输入图像上滑动,对比模板和在模板图像下的输入图像块.它返回了一 ...
- opencv python教程简书_OpenCV-Python教程:57.图像修复
基础 你们可能家里都会有一些老照片已经有黑点啊,划痕啊等.你有想过修复它们么?我们不能简单的在绘图工具里把他们擦除了就完了.因为这样只是把黑色的东西变成白色的而已,实际上没用.在这种情况下,会用到一种 ...
最新文章
- SSE-CMM5个级别划分概述
- 遇到的问题及解决方法
- 八款常用的 Python GUI 开发框架推荐
- C语言signal()函数(通过设置一个函数(回调函数)来处理捕获到异常信号时需要执行的操作)
- Prim和Dijkstra算法的区别
- 如何测试一个电梯,测试方案及测试用例
- php直播pk规则,直播源码中的主播PK功能是如何实现的
- 只用一个循环实现层序遍历
- 使用reflux进行react组件之间的通信
- MySQL 8.0安装记录
- CEF3研究(四)之javascript集成
- 《Adobe Illustrator CS6中文版经典教程(彩色版)》—第0课0.4节应用颜色
- 朋友圈一杠中间一个点_朋友圈只显示一条线 中间一个点 是被删除了么
- 江南春:在不确定的市场,找到确定性的增长
- 生成HTTPS协议需要的SSL证书
- 计算机三级网络技术(补充)
- w10计算机配置在哪看,win10如何查看电脑配置参数(一招查看电脑配置好坏)
- 世界上第一家咨询公司的发展历史
- 潭州学院html学习(day04)
- 仿真软件OriginPro之《文献图片取点方法》
热门文章
- Mac配置腾讯云服务器SSH秘钥免登陆
- IntelliJ IDEA如何去掉xml文件背景色
- 温故知新----css基础
- android示例程序剖析之记事本,Android实现记事本项目完整实例,附源代码
- debian9 linux的版本,Debian 9.4 发布,小版本更新
- solr6 mysql增量更新_solr 的全量更新与增量更新
- 计算机系统结构期末张晨曦,计算机系统结构(张晨曦)试题
- nyoj 610 定长覆盖 贪心问题系列
- php header带session,PHP接口跨域header头以及Session跨域方法
- python字典练习_python字典练习