Detecting the center of a curved thick line in python using opencv

starting with your original image,
thinning would collapse it to a single line,
from where you can find the maximum y value:

# some preprocessing
ocv = cv2.blur(ocv,(9,9))
_,ocv = cv2.threshold(ocv, 220, 255, 0)

# collapse to line
ocv = cv2.ximgproc.thinning(ocv,0)

c, _ = cv2.findContours(ocv,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)

z = np.array(c[0])
z = z.reshape(z.shape[0],z.shape[2]) # remove 'middle' dim
m = np.argmax(z,0) # id of max along 1st dim (y)
id = m[1]
x = z[id,0]
y = z[id,1]
# vizualize
p3 = (int(x),int(y))
cv2.circle(ocv,p3,10,(180))