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中的文本处理
Apr 11 Python
Python爬虫实现(伪)球迷速成
Jun 10 Python
django缓存配置的几种方法详解
Jul 16 Python
Python判断telnet通不通的实例
Jan 26 Python
详解python中init方法和随机数方法
Mar 13 Python
Python 函数绘图及函数图像微分与积分
Nov 20 Python
python numpy 反转 reverse示例
Dec 04 Python
Python面向对象之继承原理与用法案例分析
Dec 31 Python
keras实现调用自己训练的模型,并去掉全连接层
Jun 09 Python
解决tensorflow 释放图,删除变量问题
Jun 23 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
python中绕过反爬虫的方法总结
Nov 25 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
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
PHP版自动生成文章摘要
2008/07/23 PHP
PHP memcache扩展的三种安装方法
2009/04/26 PHP
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
详解PHP中mb_strpos的使用
2018/02/04 PHP
jquery 批量上传图片实现代码
2010/01/28 Javascript
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
JS中的进制转换以及作用
2016/06/26 Javascript
微信小程序入门教程
2016/11/18 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
Python中的匿名函数使用简介
2015/04/27 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
24式加速你的Python(小结)
2019/06/13 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
2020/05/03 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
枚举与#define宏的区别
2014/04/30 面试题
个人求职简历的自我评价
2013/10/19 职场文书
简历中个人自我评价范文
2013/12/26 职场文书
公务员职业生涯规划书范文  
2014/01/19 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
工作保证书范文
2014/04/29 职场文书
个人委托书范本
2014/09/13 职场文书
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL
MySQL中的隐藏列的具体查看
2021/09/04 MySQL