How do I find the contours of a letter

I used the findcontours method but it does not work as expected. What I want is the sketched version of the letter “v” from the original image.

This is the original image of letter “v”

After using findcontours, codes attached below, it gave me an image that is not exactly what I want. I am a new user so can only upload one image. Pls see replies below.

gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
thinned = cv.ximgproc.thinning(binary)
contours, hireachy = cv.findContours(thinned, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
contours = extractContours(contours)

def extractContours(contours):
    contours = contours[0].tolist()
    x = []
    y = []
    newContours = []
    for i in contours:
    for i in newContours:
    return np.asfortranarray([x, y])

The above codes output this image below in the variable “contours”

Apparently, this looks like a “Y” more. This is the first issue.
The second issue is that, this output image, or “contours” variable in the codes above, actually stores points in a “round trip” way. By that I mean “contours” has points in the way like " (1,1) (3,3) (5,5) (7,7) (9,9) (8,8) (6,6) (4,4) (2,2) (0,0).

To give another illustration of “round trip”, below I extract each segment from “contours”, and I got these images below. As you can see, contours store points of “v” twice. But there are no duplicated points. (The reason why the blue segments are a little bit off is because I use Bézier curve so it looks a bit off.)
So I need some help to get what I want, that is a sketched version of a letter, for which the points can be stored in a “one way” trip in stead of a “round way” trip. . I am new user to opencv. Thanks for help!