Prewitt边缘检测算子
Prewitt算子也是一种一阶微分算子,用于边缘检测。与Robert使用2*2的模板不同,Prewitt算子使用的是3*3的模板,利用像素点上下、左右邻点的灰度差来检测边缘,故其边缘检测结果在水平方向和垂直方向均比Robert算子更加明显。在Python中,Prewitt算子的实现过程与Robert算子类似。首先通过numpy定义模板,也就是卷积核,再调用函数filter2D对图像进行卷积,最终通过convertScaleAbs()和addWeighted函数实现。
Prewitt算子适合用来识别噪声较多、灰度渐变的图像。此算子也可以应用在彩色图像上,运行结果如下图所示,左图为原彩色图像,右图为经过Prewitt算子检测后的边缘图像。此种显示方式只显示了边缘,除了边缘部分其他皆为0,即全黑。
当然也可以逐像素点地进行计算,只是这种方法的话运行效率较低,图片太大的话耗费的时间会较长。