创建轮廓
一般获取轮廓的步骤是提取边缘,边缘是一张图片中亮暗区域的过渡位置,它可以由图片梯度计算得出。图片梯度也可以表示为边缘幅度和边缘方向。通过选择那些有高的边缘幅值的像素点或者有特定边缘方向的像素点,区域内的轮廓可以提取出来。可以通过多种的方式以多种精度提取轮廓。
- 像素精度提取边缘的方法 :使用 边缘滤波器
常见的像素精确边缘滤波器是运算速度较快的Sobel_amp和速度较慢但已经包括滞后阈值和细化的edges_image,其结果比Sobel_amp更精确。edges_image及其对应的彩色图像(edges_color)也可以在参数Filter设置为“Sobel_fast”的情况下应用。这样,算子的速度也很快,但仅推荐用于噪声或纹理小且边缘锐利的图像。
除了边缘之外,还可以提取由薄结构构建的线。这些线有着不均匀的一定的宽度,一般采用滤波算子bandpass_image,结合了阈值和细化。
经过滤波、阈值和细化后得到的结果一般都会转换为轮廓。将薄边缘区域转换为轮廓的算子有gen_contours_skeleton_xld。
- 亚像素精度提取边缘的方法
采用亚像素边缘提取算子可以立刻得到轮廓。例如edges_sub_pix、edges_color_sub_pix、zero_crossing_sub_pix。