opencv—— 图像边缘检测和轮廓检测的区别
1.检测目的和对象不同:
边缘检测主要是为了找到图像中颜色、亮度变化明显的点,反映在图像矩阵上,就是要找到相对周围其他像素点,像素值或者梯度值变化明显的像素点。
轮廓检测就是要找到一个物体的边界,确定物体的形状。物体的轮廓一定是闭合的、连续的,而图像的边缘不一定是闭合的、连续的。
2.检测手段不同:
边缘检测主要使用sobel算子、Canny算子、Laplacian算子等检测像素间的梯度变化来标识边缘。
轮廓检测主要使用cv2.findcontours()找到物体的轮廓。
3.检测结果不同:
边缘检测先检测出每个像素点的梯度值,然后对梯度值进行阈值处理获得一个与原图宽高一致的二值图像。
轮廓检测获得的是物体轮廓中各点的坐标集合和轮廓间的层次关系(包含关系)。