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逐行读取文件内容的三种方法
Jan 20 Python
详解Swift中属性的声明与作用
Jun 30 Python
Django的分页器实例(paginator)
Dec 01 Python
Python get获取页面cookie代码实例
Sep 12 Python
python实现二维插值的三维显示
Dec 17 Python
Flask核心机制之上下文源码剖析
Dec 25 Python
django-rest-framework解析请求参数过程详解
Jul 18 Python
Django对接支付宝实现支付宝充值金币功能示例
Dec 17 Python
Pytoch之torchvision.transforms图像变换实例
Dec 30 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
Feb 29 Python
详解用Python调用百度地图正/逆地理编码API
Jul 02 Python
Python如何定义有默认参数的函数
Aug 10 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 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
解析php函数method_exists()与is_callable()的区别
2013/06/21 PHP
php发送post请求函数分享
2014/03/06 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
PHP MySql增删改查的简单实例
2016/06/21 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
2017/07/27 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
基于jQuery的history历史记录插件
2010/12/11 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
Javascript复制实例详解
2016/01/28 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
微信小程序学习总结(四)事件与冒泡实例分析
2020/06/04 Javascript
微信小程序实现列表左右滑动
2020/11/19 Javascript
[40:03]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#1EHOME VS Archon
2016/03/02 DOTA
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
python3.4 将16进制转成字符串的实例
2019/06/12 Python
简单了解django索引的相关知识
2019/07/17 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
HTML5+CSS3模仿优酷视频截图功能示例
2017/01/05 HTML / CSS
关于canvas.toDataURL 在iOS运行失败的问题解决
2020/09/16 HTML / CSS
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
《雪儿》教学反思
2014/04/17 职场文书
物业管理委托协议(2篇)
2014/09/23 职场文书
查摆问题自查报告范文
2014/10/13 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js
Python基本知识点总结
2022/04/07 Python
python+opencv实现目标跟踪过程
2022/06/21 Python