'**SUMMARY**
Given a List of points finds edges closet to the line joining two
successive points, edges are returned as a FeatureSet of
Lines.
Note : Image must be binary, it is assumed that prior conversion is done
**Parameters**
* *pointList* - List of points to be checked for nearby edges.
* *step* - Number of points to skip if no edge is found in vicinity.
Keep this small if you want to sharply follow a curve
**RETURNS**
* FeatureSet * - A FeatureSet of Lines
**EXAMPLE**
>>> image = Image("logo").edges()
>>> edgeLines = image.edgeSnap([(50,50),(230,200)])
>>> edgeLines.draw(color = Color.YELLOW,width = 3)'

def edgeSnap(self, pointList, step=1):

    imgArray = self.getGrayNumpy()
    c1 = np.count_nonzero(imgArray)
    c2 = np.count_nonzero((imgArray - 255))
    if ((c1 + c2) != imgArray.size):
        raise ValueError, 'Image    must    be    binary'
    if (len(pointList) < 2):
        return None
    finalList = [pointList[0]]
    featureSet = FeatureSet()
    last = pointList[0]
    for point in pointList[1:None]:
        finalList += self._edgeSnap2(last, point, step)
        last = point
    last = finalList[0]
    for point in finalList:
        featureSet.append(Line(self, (last, point)))
        last = point
    return featureSet
