Python-OpenCV 处理图像(五):图像中边界和轮廓检测

2006 查看

系列文章目录

关于边缘检测的基础来自于一个事实,即在边缘部分,像素值出现”跳跃“或者较大的变化。如果在此边缘部分求取一阶导数,就会看到极值的出现。

而在一阶导数为极值的地方,二阶导数为0,基于这个原理,就可以进行边缘检测。

关于 Laplace 算法原理,可参考

0x01. Laplace 算法

下面的代码展示了分别对灰度化的图像和原始彩色图像中的边缘进行检测:

效果展示

原图

灰度化图片检测

原始彩色图片检测

0x02. Sobel 算法

Sobel 也是很常用的一种轮廓识别的算法。

关于 Sobel 导数原理的介绍,可参考

以下是使用 Sobel 算法进行轮廓检测的代码和效果

处理之后效果图(感觉比Laplace效果要好些)

0x03. cv.MorphologyEx

cv.MorphologyEx 是另外一种边缘检测的算法

0x04. Canny 边缘检测

Canny 算法可以对直线边界做出很好的检测;

关于 Canny 算法原理的描述,可参考: