分享

python+opencv图像处理(二十八)

 pythonjava学习 2021-04-06

Prewitt边缘检测算子

Prewitt算子也是一种一阶微分算子,用于边缘检测。与Robert使用2*2的模板不同,Prewitt算子使用的是3*3的模板,利用像素点上下、左右邻点的灰度差来检测边缘,故其边缘检测结果在水平方向和垂直方向均比Robert算子更加明显。
其数学表达式如下:
P(i,j)=max[G(i),G(j)]
P(i,j)=G(i)+G(j)
其算子如下:
Python中,Prewitt算子的实现过程与Robert算子类似。首先通过numpy定义模板,也就是卷积核,再调用函数filter2D对图像进行卷积,最终通过convertScaleAbs()addWeighted函数实现。
其代码如下:
运行结果如下:

Prewitt算子适合用来识别噪声较多、灰度渐变的图像。
此算子也可以应用在彩色图像上,运行结果如下图所示,左图为原彩色图像,右图为经过Prewitt算子检测后的边缘图像。此种显示方式只显示了边缘,除了边缘部分其他皆为0,即全黑。

    当然也可以逐像素点地进行计算,只是这种方法的话运行效率较低,图片太大的话耗费的时间会较长。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多