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 相关文章推荐
windows下python模拟鼠标点击和键盘输示例
Feb 28 Python
python爬虫入门教程之糗百图片爬虫代码分享
Sep 02 Python
Python中itertools模块用法详解
Sep 25 Python
Python表示矩阵的方法分析
May 26 Python
python的exec、eval使用分析
Dec 11 Python
python使用tensorflow保存、加载和使用模型的方法
Jan 31 Python
Python简单实现两个任意字符串乘积的方法示例
Apr 12 Python
Python3实现统计单词表中每个字母出现频率的方法示例
Jan 28 Python
Django项目使用CircleCI的方法示例
Jul 14 Python
django列表筛选功能的实现代码
Mar 27 Python
利用python绘制数据曲线图的实现
Apr 09 Python
numpy库reshape用法详解
Apr 19 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
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
给初学PHP的5个入手程序
2006/11/23 PHP
ThinkPHP中使用Ueditor富文本编辑器
2015/09/02 PHP
PHP/HTML混写的四种方式总结
2017/02/27 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
jquery 选择器引擎sizzle浅析
2013/02/06 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
基于jQuery实现选项卡效果
2017/01/04 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
vue实现添加与删除图书功能
2018/10/07 Javascript
js回溯法计算最佳旅行线路代码实例
2019/09/11 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
JavaScript eval()函数定义及使用方法详解
2020/07/07 Javascript
[01:12]DOTA2 2015年秋季互动指南
2015/11/10 DOTA
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
Python并发:多线程与多进程的详解
2019/01/24 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
2019/04/06 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
2019/09/02 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
python实现飞船大战
2020/04/24 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
2014年党员个人剖析材料
2014/10/08 职场文书
单方投资意向书
2015/05/11 职场文书
八月一日观后感
2015/06/10 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
php实现自动生成验证码的实例讲解
2021/11/17 PHP
python数字图像处理数据类型及颜色空间转换
2022/06/28 Python