小言_互联网的博客

在OpenCV里实现Prewitt算子

534人阅读  评论(0)

Prewitt算子是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用 。其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。

图像与左边y轴算子可以反映图像水平方向上的边缘,图像与右边x轴算子可以反映画像垂直方向上的边缘。而且这两个卷积核可以分离,其中:

preitt.x=111*10-1

从分离的结果来看,就可以看到实际上先对图像进行垂直方向上的非归一化的均值平滑,然后再进行水平方向上的差分,也就是求梯度,因为离散数据求导,其实就是数列的差值。同样也可以对y轴的卷积核进行分解,会有同样的特性。由于这个算子有了平滑的功能,所以对噪声比较多的图像进行边缘检测,要比使用前面学习的Roberts要好。

通过下面的例子来演示Prewitt算子的处理过程:


转载:https://blog.csdn.net/caimouse/article/details/102057278
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场