Roberts算子
Roberts算子即为交叉微分算法,它是基于交叉差分的梯度算法,通过局部差分计算检测边缘线条。常用来处理具有陡峭的第噪声图像,当图像边缘接近于正45度或负45度时,该算法处理效果更理想,其缺点时对边缘的定位不太准确,提取的边缘线条较粗。
在Python中,Roberts算子主要是通过Numpy定义模板,再调用OpenCV的filter2D()函数实现边缘提取。该函数主要是利用内核实现对图像的卷积运算,其函数原型如下:
dst = filter2D(src, ddepth, kernel, dts, anchor,delta, borderType)
src:表示输入图像
ddepth: 表示目标图像所需的深度
kernel: 表示卷积核,一个单通道浮点型矩阵
anchor: 表示内核的基准点,其默认值为(-1, -1),位于中心位置
delta:表示在存储目标图像前可选的添加到像素的值,默认值为0
borderType:表示边框模式
importcv2importnumpy as npimportmatplotlib.pyplot as plt
img= cv2.imread("src.png")
img=cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
grayImage=cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#Roberts算子
kernelx = np.array([[-1, 0], [0, 1]], dtype=int)
kernely= np.array([[0, -
python图像锐化 增强边缘_[Python图像处理]十一.图像锐化与边缘检测之Roberts算子 Prewitt算子 Sobel算子和Laplacian算子 Schar算子...