首页 > 其他 > 详细

05 梯度处理

时间:2021-01-07 15:56:06      阅读:29      评论:0      收藏:0      [点我收藏+]

梯度

梯度计算是:在某个通道内,计算某个像素点和周围(水平,垂直,四周...)的像素的亮度差异的大小,不同的算子代表不同的计算方式

算子

Sobel算子 一种常用的算子

\[Gx = \begin{bmatrix} {{-1}}&{{0}}&{{1}}\{{-2}}&{{0}}&{{2}}\{{-1}}&{{0}}&{{1}}\\end{bmatrix}\]

\[Gy = \begin{bmatrix} {{-1}}&{{-2}}&{{-1}}\{{0}}&{{0}}&{{0}}\{{1}}&{{2}}&{{1}}\\end{bmatrix}\]

\[Gxy = \begin{bmatrix} {{1}}&{{0}}&{{-1}}\{{0}}&{{0}}&{{0}}\{{-1}}&{{0}}&{{1}}\\end{bmatrix}\]

边缘点

\[G =2 \begin{bmatrix} {{-1}}&{{0}}&{{1}}\{{-1}}&{{0}}&{{1}}\\end{bmatrix}\]

\[G =2 \begin{bmatrix} {{-1}}&{{-1}}\{{0}}&{{0}}\{{1}}&{{1}}\\end{bmatrix}\]

Sobel算子一般取3X3矩阵(可以自由指定),它会用它的中心遍历每个通道的图像中的每个像素点,并进行运算(对应位置相乘,并相加),得到的结果作为该像素点的亮度值

对于Gx右边的值 减去 左边的值.
权重: 在水平方向,靠近中心点(目标像素点)的权重为2,大于斜向值1

对于Gy下边的值 减去 上边的值.
权重: 在垂直方向,靠近中心点(目标像素点)的权重为2,大于斜向值1


img= cv2.imread(‘imgs/300.png‘,0)
cv2.imshow(‘1‘,img)
img2 = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)
cv2.CV_64F:
1,0:x 方向
0,1:y 方向
ksize:核大小

Scharr算子

\[Gx = \begin{bmatrix} {{-3}}&{{0}}&{{3}}\{{10}}&{{0}}&{{10}}\{{-3}}&{{0}}&{{3}}\\end{bmatrix}\]

\[Gy = \begin{bmatrix} {{-3}}&{{-10}}&{{-3}}\{{0}}&{{0}}&{{0}}\{{3}}&{{10}}&{{3}}\\end{bmatrix}\]

原理上:和Sobel算子没有区别,差异在于比例放大了,也就是说,同样的差异,Scharr算子认为差异更大---更加敏感,放大细节

Laplacian算子

\[G = \begin{bmatrix} {{0}}&{{1}}&{{0}}\{{1}}&{{-4}}&{{1}}\{{0}}&{{1}}&{{0}}\\end{bmatrix}\]

通过结构可知:Laplaceian算子强调像素点和它上下左右四个像素点自和进行比较,有什么应用场景呢?还不知道

具体算法

(x,y单方向)
1.非边缘像素:对应位置,数值权重 再求和
2.边缘点
2.1 x方向:第一竖一定是0,设为基础点。其余边缘点 = 2
(右-左)
2.2 y方向:第一行一定是0,设为基础点。其余边缘点 = 2*(下-上)
(x,y斜向):(左上+右下)-(右上+左下)

05 梯度处理

原文:https://www.cnblogs.com/m4kemoretime/p/14226232.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!