OpenCV: ¿Cómo puedo encontrar el color dentro de un contorno / polígono?

Esto es lo que tengo

im = cv2.imread('luffy.jpg')
gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(gray,127,255,0)

contours,h = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

for cnt in contours:

    // return color inside of the contour here
    mask = np.zeros(cnt.shape[:2],np.uint8)
    mean = cv2.mean(cant,mask)   // I think this is promising but so far it returns arrays with just zeros. I think its because I used np.zeros above to find the mask....
    moment = cv2.moments(cnt)   //maybe this will help?

No puedo encontrar esa función de openCV incorporada. ¿Supongo que quizás puedas hacerlo con los momentos? ¿¿Cómo puedo conseguir esto??

EDITAR: con la solución propuesta dada por Zaw Lin tengo esta imagen de entrada:

y esta imagen de salida:

Respuestas a la pregunta(2)

Su respuesta a la pregunta