Getting rid of Canny outliers
Please see my answer to this question: Detecting and isolating part of an image

You can use circular shortest path to do this quite elegantly. You are using OpenCV and and not MATLAB so some modification of my code is required.