python图像处理(prewitt算子)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        前面几章谈到了灰化、增强、旋转、滤波等内容,今天来谈一谈边缘检测。边缘检测是图像处理的重要内容。很多图像分割、图像识别的前一步就是边缘检测。某种意义上说,边缘检测的好坏决定了图像分割的成败。

        抛开今天的prewitt算子不谈,大家可以思考一下,怎么在一个图像中把一条竖线的边缘识别出来?或者换句话说,一条竖线,它的边缘有什么特征?

         假设我们自己需要设计这么一个算子的话,是不是可以通过某些突变的特征来检测边缘点。如果点位于白色区域或者黑色区域,很明显左右侧像素点是没有发生改变的。但是如果是直线上的边缘点,要么左侧是白色,右侧是黑色,要么左侧是黑色,右侧是白色,这样就可以很容易设计出一个算子,那就是[-1,0,1;-1,0,1;-1,0,1],这样中间这一侧的图像点就完全被忽略掉,用右侧的像素点减去左侧的像素点,累计之和赋值给中间的元素点即可,这样不就可以把直线边缘检测出来了。

        prewitt算子也是这么想的,如果用之前的lena图像做测试的话,那么效果是这样的,

猜你喜欢

转载自blog.csdn.net/feixiaoxing/article/details/128781973
今日推荐