OPENCV中的Sobel函数

sobel算子是一种常用的边缘检测算子,是一阶的梯度算法。对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。当对精度要求不是很高时,是一种较为常用的边缘检测方法。它进行处理的模板如下:
这里写图片描述
其中,Gx是横向的算子,Gy是纵向的算子。
原图像记为f,则
GX = Gx*f
GY = Gy*f
Gx =-1*f(x-1, y-1) + 0*f(x,y-1) + 1*f(x+1,y-1)+(-2)*f(x-1,y) + 0*f(x,y)+2*f(x+1,y)+(-1)*f(x-1,y+1) + 0*f(x,y+1) + 1*f(x+1,y+1)
Gy =1* f(x-1, y-1) + 2*f(x,y-1)+ 1*f(x+1,y-1)+0*f(x-1,y) 0*f(x,y) + 0*f(x+1,y)+(-1)*f(x-1,y+1) + (-2)*f(x,y+1) + (-1)*f(x+1, y+1)
GX,GY代表利用模板对原图像卷积的结果。
对于原图像中的每一个像素,在3*3的模板中进行上述的卷积,得到GX、GY,则最后该像素的灰度值近似为:
G = |GX|+|GY|
如果G大于某一个阈值,则认定该点为一个边缘点。
上述的处理可以同时进行两个方向的处理,当需要突出图像某一个方向的边缘信息时,也可以只进行其中一个方向的处理。
在opencv3.1.0中,sobel算子在C++中的函数原型如下:
void Sobel(InputArray src, OutputArray dst, int ddepth, int dx, int dy, int ksize=3, double scale=1, double delta=0, int borderType=BORDER_DEFAULT )
函数参数解释:
InputArray src:输入的原图像,Mat类型
OutputArray dst:输出的边缘检测结果图像,Mat型,大小与

OpenCV库中,Sobel算子是一种常用的边缘检测算法,它基于梯度计算来识别图像中的边缘。Sobel算子本质上是对图像进行微分处理,分为水平方向和垂直方向两个步骤,分别求取像素点在x轴和y轴方向的变化率。 以下是使用OpenCV进行Sobel边缘检测的基本步骤: 1. **导入必要的库**: ```python import cv2 import numpy as np ``` 2. **读取图像**: ```python img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE) ``` 3. **应用Sobel算子**: - 首先,选择 Sobel 算子的方向,通常是 `cv2.Sobel()` 函数的第一个参数设置为 `cv2.CV_8U` 表示8位无符号整数类型的输入图像,然后指定方向,如 `cv2.Sobel(src, dst, ddepth, dx, dy, ksize, scale, delta)`,其中 `dx` 和 `dy` 分别代表对 x 和 y 轴的偏导数,`ksize` 是卷积核大小(一般为3或5),`scale` 和 `delta` 是可选参数,用于校准结果。 ```python kernel_size = 3 sobel_x = cv2.Sobel(img, cv2.CV_8U, 1, 0, ksize=kernel_size) sobel_y = cv2.Sobel(img, cv2.CV_8U, 0, 1, ksize=kernel_size) ``` 4. **合并方向**: 通常会将水平和垂直方向的结果相加得到二值边缘图,也可以选择其他合成方式(例如按某种阈值比例组合)。 ```python abs_sobel = cv2.absdiff(sobel_x, sobel_y) ``` 5. **阈值处理**: 使用阈值函数将边缘转换成黑白二值图像,比如 `cv2.threshold()` 或 `cv2.Canny()` 进行双阈值边缘检测。 ```python edges = cv2.threshold(abs_sobel, thresh1=50, thresh2=255, type=cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值