Find and draw the largest contour in opencv on a specific color (Python) : <p>Im trying to get the largest contour of a red book.
I've got a little problem with the code because its getting the contours of the smallest objects (blobs) instead of the largest one and I can't seem to figure out why this is happening</p>

<p>The code I use:</p>

<pre><code>camera = cv2.VideoCapture(0)
kernel = np.ones((2,2),np.uint8)

while True:
    #Loading Camera
    ret, frame = camera.read()

    blurred = cv2.pyrMeanShiftFiltering(frame, 3, 3)
    hsv = cv2.cvtColor(blurred, cv2.COLOR_BGR2HSV)

    lower_range = np.array([150, 10, 10])
    upper_range = np.array([180, 255, 255])
    mask = cv2.inRange(hsv, lower_range, upper_range)

    dilation = cv2.dilate(mask,kernel,iterations = 1)

    closing = cv2.morphologyEx(dilation, cv2.MORPH_GRADIENT, kernel)
    closing = cv2.morphologyEx(dilation, cv2.MORPH_CLOSE, kernel)

    #Getting the edge of morphology
    edge = cv2.Canny(closing, 175, 175)
    _, contours,hierarchy = cv2.findContours(edge, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

    # Find the index of the largest contour
    areas = [cv2.contourArea(c) for c in contours]
    max_index = np.argmax(areas)
    cnt=contours[max_index]

    x,y,w,h = cv2.boundingRect(cnt)
    cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)


    cv2.imshow('threshold', frame)
    cv2.imshow('edge', edge)

    if cv2.waitKey(1) == 27:
        break


camera.release()
cv2.destroyAllWindows()
</code></pre>

<p><a href="https://i.stack.imgur.com/yuyGo.png" rel="noreferrer">As you can see on this picture</a></p>

<p>Hopefully there is someone who can help</p>
