Adaptive canny operator edge detection