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 相关文章推荐
Python2中的raw_input() 与 input()
Jun 12 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
Mar 02 Python
理解Python中的With语句
Mar 18 Python
python+selenium实现163邮箱自动登陆的方法
Dec 31 Python
使用apidocJs快速生成在线文档的实例讲解
Feb 07 Python
python日期时间转为字符串或者格式化输出的实例
May 29 Python
python实现对象列表根据某个属性排序的方法详解
Jun 11 Python
Python简易计算器制作方法代码详解
Oct 31 Python
python selenium循环登陆网站的实现
Nov 04 Python
Python Request类源码实现方法及原理解析
Aug 17 Python
基于python模拟TCP3次握手连接及发送数据
Nov 06 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
Apr 24 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
CI框架中zip类应用示例
2014/06/17 PHP
php自定义分页类完整实例
2015/12/25 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
js 实现css风格选择器(压缩后2KB)
2012/01/12 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
简单实现JS上传图片预览功能
2017/04/14 Javascript
详解Node.js串行化流程控制
2017/05/04 Javascript
利用Ionic2 + angular4实现一个地区选择组件
2017/07/27 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
Vue路由守卫之路由独享守卫
2019/09/25 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
利用JavaScript模拟京东按键输入功能
2020/12/01 Javascript
vue3.0实现插件封装
2020/12/14 Vue.js
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
python函数形参用法实例分析
2015/08/04 Python
python 读写、创建 文件的方法(必看)
2016/09/12 Python
python爬虫添加请求头代码实例
2019/12/28 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
Python爬虫实现自动登录、签到功能的代码
2020/08/20 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
团日活动总结
2014/04/28 职场文书
师范类求职信
2014/06/21 职场文书
中学生社会实践活动总结
2014/07/03 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
2014司机年终工作总结
2014/12/05 职场文书
入党函调证明材料
2014/12/24 职场文书
导游词怎么写
2015/02/04 职场文书
天堂的孩子观后感
2015/06/11 职场文书