前言
在04Sobel算子中可以看到,Sobel算子的特点是它的边缘很厚,也就是说它的抗干扰能力不咋地。Priwitt算子就是在其基础上变得更加抗干扰了。
一、Priwitt是什么?
二、进行验证
这部分的卷积什么的就不再赘述,可以拿前面的文章作参考。
1.仿真结果
代码如下(示例):
import numpy as np
import img_filter2D
def my_roberts(img):
h,w = img.shape[:2]
G = np.zeros((img.shape[0], img.shape[1]), dtype=np.float32)
#sobel
dx = np.array([[-1,0,1],[-2,0,2],[-1,0,1]])
dy = np.array([[-1, -2, -1], [0, 0, 0], [1, 2, 1]])
#priwwi
dx1 = np.array([[-1, 0, 1], [-1, 0, 1], [-1, 0, 1]])
dy1 = np.array([[-1, -1, -1], [0, 0, 0], [1, 1, 1]])
Gx = abs(img_filter2D.my_filter2D(img,dx1))
Gy = abs(img_filter2D.my_filter2D(img,dy1))
G = Gx+Gy
new_img = np.clip(G, 0, 255).astype(np.uint8)
Gx = np.clip(Gx, 0, 255).astype(np.uint8)
Gy = np.clip(Gy, 0, 255).astype(np.uint8)
return Gx,Gy,new_img
可以看到效果比Sobel要好。