一、简介
图形检测是计算机视觉的一项重要功能,通过图形检测可以分析图像中可能存在的形状,然后对这些形状进行描绘,例如:搜索并绘制图像的边缘,定位图像的位置,判断图像中有没有直线,有没有圆形等,虽然图形检测涉及非常深奥的数学算法,但OpenCV已经将这些算法封装成了简单的方法,开发者只需要学会如何调用,调参数即可实现检测功能
二、图像检测
1、图像的轮廓
轮廓,是指图像中图形或物体的外边缘线条,简单的几何图形轮廓是由平滑的线构成的,容易识别,但不规则图形的轮廓可能有许多点构成,识别起来比较困难
OpenCV提供的findContours()方法可以通过计算图像梯度来判断图像的边缘,然后将边缘的点封装成数组返回。
contours,hierarchy=cv2.findContours(image,mode,method)
image:被检测的图像,必须是8位单通道二值化图像,如果原始图像是彩色图像,必须转为灰度图像,并进行二值化阈值处理。
mode:轮廓检索模式:
cv2.RETR_EXTERNAL 只检测外轮廓
cv2.RETR_LIST 检测所有轮廓,但不建立层次关系