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实现的一个找零钱的小程序代码分享
Aug 25 Python
python脚本实现分析dns日志并对受访域名排行
Sep 18 Python
跟老齐学Python之折腾一下目录
Oct 24 Python
python在windows命令行下输出彩色文字的方法
Mar 19 Python
简单理解Python中基于生成器的状态机
Apr 13 Python
简单谈谈Python中的json与pickle
Jul 19 Python
Python测试人员需要掌握的知识
Feb 08 Python
Python使用cx_Oracle模块操作Oracle数据库详解
May 07 Python
PIL对上传到Django的图片进行处理并保存的实例
Aug 07 Python
opencv调整图像亮度对比度的示例代码
Sep 27 Python
3种python调用其他脚本的方法
Jan 06 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
php下目前为目最全的CURL中文说明
2010/08/01 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
php方法调用模式与函数调用模式简例
2011/09/20 PHP
深入理解php的MySQL连接类
2013/06/07 PHP
php获取新浪微博数据API实例
2013/11/12 PHP
php实现最简单的MVC框架实例教程
2014/09/08 PHP
php设计模式之委托模式
2016/02/13 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
2016/10/17 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
JavaScript delete操作符应用实例
2009/01/13 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
asp.net+js实现金额格式化
2015/02/27 Javascript
Angularjs实现搜索关键字高亮显示效果
2017/01/17 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
VsCode插件整理(小结)
2017/09/14 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
PacSun官网:加州生活方式服装、鞋子和配饰
2018/03/10 全球购物
大三自我鉴定范文
2013/10/05 职场文书
水务局局长岗位职责
2013/11/28 职场文书
股东协议书范本
2014/04/14 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
群众路线自我剖析及整改措施
2014/11/04 职场文书
土建技术员岗位职责
2015/04/11 职场文书
Python包管理工具pip的15 个使用小技巧
2021/05/17 Python
浅析Python中的套接字编程
2021/06/22 Python