引言

什么是图像梯度?以及图像梯度怎么求解?

1 图像梯度的概念

图像梯度是指图像某像素在x和y两个方向上的变化率(与相邻像素比较),是一个二维向量,由2个分量组成X轴的变化、Y轴的变化 。其中:

  • X轴的变化是指当前像素右侧(X加1)的像素值减去当前像素左侧(X减1)的像素值。
  • Y轴的变化是当前像素下方(Y加1)的像素值减去当前像素上方(Y减1)的像素值。

计算出来这2个分量,形成一个二维向量,就得到了该像素的图像梯度。取反正切arctan,可得到梯度角度。

2 图像梯度的求解

这个求图像梯度的过程可以通过一个卷积核来实现:[-1,0,1]
在这里插入图片描述
图像梯度的绝对值为:
在这里插入图片描述

图像梯度的角度为:
在这里插入图片描述
代码实现:

import numpy as np
import scipy.signal as sig
data = np.array([[0, 105, 0], [40, 255, 90], [0, 55, 0]])
G_x = sig.convolve2d(data, np.array([[-1, 0, 1]]), mode='valid') 
G_y = sig.convolve2d(data, np.array([[-1], [0], [1]]), mode='valid')

参考链接:https://www.icode9.com/content-4-644404.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐