opencv计算机视觉——图像梯度运算-Sobel算子

1.cv2.Sobel(src, ddepth, dx, dy, ksize) 进行sobel算子计算

参数说明:src表示当前图片,ddepth表示图片深度,这里使用cv2.CV_64F使得结果可以是负值, dx表示x轴方向,dy表示y轴方向, ksize表示移动方框的大小

2.cv2.convertScalerAbs(src) 将像素点进行绝对值计算

参数说明: src表示当前图片

sobel算子:分为x轴方向和y轴方向上的,x轴方向上的算子如图中的Gx,将sober算子在图中进行平移,当前位置的像素值等于sobel算子与(当前位置与周边位置8个点)进行对应位置相乘并相加操作,作为当前位置的像素点,y轴方向的算子如Gy, 对于x轴方向上,即左右两边的比较,

计算方程为:x轴: p3 - p1 + 2 * p6 - 2 * p4 + p9 - p7, 右边的像素值减去左边的像素值

在这里插入图片描述
代码:

第一步:载入原始图片

第二步:使用cv2.Sobel(src, cv2.CV_64F, 1, 0, ksize=3) 对x轴方向进行sobel算子相乘操作

第三步:由于会出现负值的情况,因此使用cv2.convertScalerAbs() 转换为绝对值的形式

第四步:计算y轴方向上的sobel算子

第五步:使用cv2.addWeighted 将x轴方向的sobel算子的结果和y轴方向上的sobel算子的结果结合

第六步:使用cv2.Sobel(src, cv2.CV_64F, 1, 1, ksize=3) 直接获得x轴和y轴方向上的sobel算子结合

第七步:对这两个步骤获得的sobel算子作图

import cv2
import numpy as np

# 第一步:加载图片
img = cv2.imread('pie.png')
cv2.imshow('original', img)
cv2.waitKey(0)
cv2.dest
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值