梯度代表数据的变化程度,在数学领域一般通过求导或者求偏导得到,但在数值领域一般通过差分来近似梯度。

常用的差分为一阶差分和二阶差分,一阶差分代表相邻2个数据之间的关系,而二阶差分代表相邻3个数据之间的关系。

y(i) = x(i+1) - i(i)

y(i+1) = x(i+2) - x(i+1)

y(i)和y(i+1)分别是x(i)和x(i+1)为一阶差分。

z(i) = y(i+1)-y(i) = x(i+2)-2*x(i+1) + x(i)

z(i)为x(i)的二阶差分,即一阶差分再求一阶差分。

在numpy中,gradient()提供数组的梯度计算功能,计算时从外轴到里轴,沿着各个轴分别计算各个轴的梯度,每个轴单独返回一个梯度数组。

gradient的构造函数如下:

numpy.gradient(f, *varargs, **kwargs)

对于数组的内部元素,使用二阶差分来近似梯度,对于数组的边缘元素,使用一阶差分来近似梯度。比如:对于a,b,c三个元素,a的梯度=b-a,b的梯度=(c-a)/2,c的梯度=c-b。(函数实际使用的二阶差分不是上面标准形式的二阶差分,而是二阶中心差分)

输入:一个N维数组

输出:输入数组有几个维度,返回几个N维度数组。

对于下面这个2×2的数组,返回2个数组,第1个数组沿着0轴计算输入数组的梯度,第2个数组沿着1轴计算输入数组的梯度。

以图像边缘检测为例(参考中国大学生MOOC python 系列课程):

原始图片长这个样子

读取图片文件,转为灰度图片,图片数组shape=(401,627)

计算数组梯度,并根据指定图片深度缩放,同时归一化计算得到的梯度值。

计算光源的俯视角度和方位角

计算结果图片数组的数组,并转为灰度图片,保存。

说明:new_img是单维度的数组,需要使用PIL的convert转为灰度图,否则保存图片全黑。

边缘检测的图片长这个样子

梯度在图片边缘检测中使用非常广泛,比如Prewitt算子,Sobel算子,Canny算子,LOG边缘检测算子等,后续会单独详细讲解。

--未完待续--

分割 反比 权重图 梯度 灰度_numpy gradient梯度函数1相关推荐

  1. 【转载】深度学习数学基础(二)~随机梯度下降(Stochastic Gradient Descent, SGD)

    Source: 作者:Evan 链接:https://www.zhihu.com/question/264189719/answer/291167114 来源:知乎 著作权归作者所有.商业转载请联系作 ...

  2. 随机梯度下降法_动量梯度下降法(gradient descent with momentum)

    简介 动量梯度下降法是对梯度下降法的改良版本,通常来说优化效果好于梯度下降法.对梯度下降法不熟悉的可以参考梯度下降法,理解梯度下降法是理解动量梯度下降法的前提,除此之外要搞懂动量梯度下降法需要知道原始 ...

  3. 【调参19】如何使用梯度裁剪(Gradient Clipping)避免梯度爆炸

    文章目录 1. 梯度爆炸和裁剪 2. TensorFlow.Keras 实现 2.1 梯度范数缩放(Gradient Norm Scaling) 2.2 梯度值裁剪(Gradient Value Cl ...

  4. python怎么计算图像梯度_Opencv-Python学习笔记十——图像梯度、边缘检测 Gradient, Edge Detection...

    图像梯度 边缘检测 图像梯度,图像边界 使用到的函数有: cv2.Sobel(), cv2.Schar(), cv2.Laplacian() 梯度简单来说就是求导,OpenCV 提供了三种不同的梯度滤 ...

  5. 机器学习中的梯度下降( Gradient Descent)算法

    前言 梯度下降(Gradient Descent,GD)算法主要分为三种:批量梯度下降(Batch Gradient Descent,BGD)算法.随机梯度下降(Stochastic Gradient ...

  6. ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)

    引言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归.逻辑回归.Softmax回归.神经网络和SVM等等,主要学习资料来自网上的免费课程和一些经典书籍,免费课 ...

  7. [机器学习] ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)

    本文转自:https://blog.csdn.net/walilk/article/details/50978864 引言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记, ...

  8. 3. 机器学习中为什么需要梯度下降_梯度提升(Gradient Boosting)算法

    本文首发于我的微信公众号里,地址:梯度提升(Gradient Boosting)算法 本文禁止任何形式的转载. 我的个人微信公众号:Microstrong 微信公众号ID:MicrostrongAI ...

  9. 深度学习--采用ReLU解决消失的梯度问题(vanishing gradient problem)

    消失的梯度问题(vanishing gradient problem): 更深层的神经网络可以学到不同抽象程度的概念,但随着深度的增加不同层的学习速率会显著不同,接近输出层的学习速率比较合适时前面的层 ...

  10. matlab彩色转灰度图代码,彩色图转灰度图 matlab 实现代码

    (一):彩色图像转灰度图 1.设计任务 1) 读入彩色和灰度图像并显示: 2) 对彩色图像转化为灰度图像并显示: 3) 比较两种方法的效果. 2.设计目的 1) 掌握彩色图转灰度图的基本原理与方法: ...

最新文章

  1. property Alternative forms propretie
  2. 手写自己的MyBatis框架-MapperProxy
  3. 【REPERTOIRE】Rastaman Vibration
  4. Objective-C浮点数转化整数(向上取整、向下取整)
  5. mac os 开启redis_高并发大流量,总会想到它!来一起通过docker搭建redis集群
  6. 万能驱动安装器_Windows驱动安装指南
  7. 鸟叔linux命令大全,[鸟哥linux视频教程整理]02_01_linux操作系统及常用命令
  8. HTML前端开发之路——Transition
  9. 高达大战分晓!日本机器人先赢后输,遭电锯切割惨惨惨 | 附高清完整视频
  10. 还在重复写空指针检查代码?考虑使用 Optional 吧!
  11. 【3月22日】2022年百度机器学习春实习笔试题解
  12. CBMVC For Titanium Alloy 发布!
  13. 非常好用的php单文件在线文件管理器微网盘系统 万维景盛优化版
  14. idea英文翻译插件Translation
  15. 和我一起学Python
  16. 2019考研上海交通大学823计算机通信网真题回忆
  17. oracle用户密码不被锁,Oracle用户密码过期和用户被锁解决方法【转】
  18. C语言 键盘输入摄氏温度,屏幕打印输出华氏温度。
  19. python安装selenium教程
  20. superset使用(四) 地图绘制的ISO 3166转码以及名称汉化显示

热门文章

  1. PHP和Java的主要区别有哪些呢?
  2. 在Unity中添加图标
  3. VC 2012 中调用WebBrowser简单的实现过程(图解过程)
  4. 展示全面快速响应能力 华为全线解决方案亮相北京国际通信展
  5. windows10安装nodeJs及环境配置
  6. Python零基础学习笔记(三十九)—— time
  7. Hexo Next底部powered by的logo栏更改以及注意事项(附官方文档,文末有福利链)
  8. Cloudera Manager 安装 CDH5.x 心得
  9. TP-Link C2和C20i产品出现命令注入、DoS等多个漏洞 绿盟科技发布安全威胁通告
  10. 关于编辑区无法调用chekbox的问题