opencv python图像梯度实例详解


Posted in Python onFebruary 04, 2020

这篇文章主要介绍了opencv python图像梯度实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一阶导数与Soble算子

二阶导数与拉普拉斯算子

图像边缘:

opencv python图像梯度实例详解

Soble算子:

opencv python图像梯度实例详解

二阶导数:

opencv python图像梯度实例详解

拉普拉斯算子:

opencv python图像梯度实例详解

import cv2 as cv
import numpy as np


# 图像梯度(由x,y方向上的偏导数和偏移构成),有一阶导数(sobel算子)和二阶导数(Laplace算子)
# 用于求解图像边缘,一阶的极大值,二阶的零点
# 一阶偏导在图像中为一阶差分,再变成算子(即权值)与图像像素值乘积相加,二阶同理
def sobel_demo(image):
  grad_x = cv.Sobel(image, cv.CV_32F, 1, 0) # 采用Scharr边缘更突出
  grad_y = cv.Sobel(image, cv.CV_32F, 0, 1)

  gradx = cv.convertScaleAbs(grad_x) # 由于算完的图像有正有负,所以对其取绝对值
  grady = cv.convertScaleAbs(grad_y)

  # 计算两个图像的权值和,dst = src1*alpha + src2*beta + gamma
  gradxy = cv.addWeighted(gradx, 0.5, grady, 0.5, 0)

  cv.imshow("gradx", gradx)
  cv.imshow("grady", grady)
  cv.imshow("gradient", gradxy)


def laplace_demo(image): # 二阶导数,边缘更细
  dst = cv.Laplacian(image,cv.CV_32F)
  lpls = cv.convertScaleAbs(dst)
  cv.imshow("laplace_demo", lpls)


def custom_laplace(image):
  # 以下算子与上面的Laplace_demo()是一样的,增强采用np.array([[1, 1, 1], [1, -8, 1], [1, 1, 1]])
  kernel = np.array([[1, 1, 1], [1, -8, 1], [1, 1, 1]])
  dst = cv.filter2D(image, cv.CV_32F, kernel=kernel)
  lpls = cv.convertScaleAbs(dst)
  cv.imshow("custom_laplace", lpls)


def main():
  src = cv.imread("../images/lena.jpg")
  cv.imshow("lena",src)
  # sobel_demo(src)
  laplace_demo(src)
  custom_laplace(src)
  cv.waitKey(0) # 等有键输入或者1000ms后自动将窗口消除,0表示只用键输入结束窗口
  cv.destroyAllWindows() # 关闭所有窗口


if __name__ == '__main__':
  main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python标准库之随机数 (math包、random包)介绍
Nov 25 Python
简单介绍Python中的floor()方法
May 15 Python
Python正则表达式教程之一:基础篇
Mar 02 Python
python numpy 部分排序 寻找最大的前几个数的方法
Jun 27 Python
django-rest-framework 自定义swagger过程详解
Jul 18 Python
浅析Windows 嵌入python解释器的过程
Jul 26 Python
python装饰器练习题及答案
Nov 01 Python
python 实现矩阵填充0的例子
Nov 29 Python
flask 框架操作MySQL数据库简单示例
Feb 02 Python
pytorch:model.train和model.eval用法及区别详解
Feb 20 Python
PHP基于phpqrcode类库生成二维码过程解析
May 28 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 21 Python
TensorFlow设置日志级别的几种方式小结
Feb 04 #Python
Python 实现加密过的PDF文件转WORD格式
Feb 04 #Python
解决tensorflow打印tensor有省略号的问题
Feb 04 #Python
对Tensorflow中tensorboard日志的生成与显示详解
Feb 04 #Python
在 Python 中接管键盘中断信号的实现方法
Feb 04 #Python
在TensorFlow中屏蔽warning的方式
Feb 04 #Python
Python和Anaconda和Pycharm安装教程图文详解
Feb 04 #Python
You might like
php discuz 主题表和回帖表的设计
2009/03/13 PHP
PHP7多线程搭建教程
2017/04/21 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
javascript实现动态加载CSS
2015/01/26 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
2018/09/21 Javascript
使用jQuery如何写一个含验证码的登录界面
2019/05/13 jQuery
Node爬取大批量文件的方法示例
2019/06/28 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
Nuxt.js nuxt-link与router-link的区别说明
2020/11/06 Javascript
python控制台英汉汉英电子词典
2020/04/23 Python
Python-嵌套列表list的全面解析
2016/06/08 Python
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
Django中的ajax请求
2018/10/19 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
PageFactory设计模式基于python实现
2020/04/14 Python
python 密码学示例——凯撒密码的实现
2020/09/21 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
Python爬虫爬取有道实现翻译功能
2020/11/27 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
会计学专业学生的求职信范文
2014/01/27 职场文书
门面房租房协议书
2014/08/20 职场文书
小学家长学校培训材料
2014/08/24 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
2016暑期社会实践心得体会范文
2016/01/14 职场文书
python unittest单元测试的步骤分析
2021/08/02 Python