Manejo de contornos y rectángulo delimitador en OpenCV 2.4 - python 2.7

Estoy trabajando con openCv y python y estoy tratando con análisis estructural y descriptores de formas. He encontrado este blog:http://opencvpython.blogspot.it/2012/06/contours-2-brotherhood.html eso es muy útil y he intentado con una imagen en blanco y negro dibujar un rectángulo delimitador y funciona. Pero ahora de una imagen extraigo, por ejemplo, el color amarillo y sobre eso me gustaría dibujar un rectángulo delimitador. El problema es que la imagen en blanco y negro no es uniforme, tiene algo de ruido y al igual que el código no reconoce toda la forma.

Y este es el código:

import numpy as np
import cv2

im = cv2.imread('shot.bmp')
hsv_img = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)
COLOR_MIN = np.array([20, 80, 80],np.uint8)
COLOR_MAX = np.array([40, 255, 255],np.uint8)
frame_threshed = cv2.inRange(hsv_img, COLOR_MIN, COLOR_MAX)
imgray = frame_threshed
ret,thresh = cv2.threshold(frame_threshed,127,255,0)
contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
cnt=contours[0]
x,y,w,h = cv2.boundingRect(cnt)
cv2.rectangle(im,(x,y),(x+w,y+h),(0,255,0),2)
cv2.imshow("Show",im)
cv2.waitKey()
cv2.destroyAllWindows()

Respuestas a la pregunta(1)

Su respuesta a la pregunta