Problem 1: Different applications use different scales for HSV. For example, gimp uses H = 0-360, S = 0-100 and V = 0-100 . But OpenCV uses H: 0-179, S: 0-255, V: 0-255 . Here I got a hue value of 22 in GIMP. So I took half, 11, and determined the range for this. those. (5,50,50) - (15,255,255) .
Problem 2: Also, OpenCV uses the BGR format, not RGB. Therefore, change the code that converts RGB to HSV as follows:
cv.CvtColor(frame, frameHSV, cv.CV_BGR2HSV)
Now run this. I got the output as follows:

Hope this is what you wanted. There are a few false detections, but they are small, so you can choose the largest outline that your cover is.
EDIT:
As Carl Philipp said in his comment, it would be nice to add new code. But there is a change in only one line. So, I would like to add the same code implemented in the new cv2 module cv2 that users can compare the lightness and flexibility of the new cv2 module.
import cv2 import numpy as np img = cv2.imread('sof.jpg') ORANGE_MIN = np.array([5, 50, 50],np.uint8) ORANGE_MAX = np.array([15, 255, 255],np.uint8) hsv_img = cv2.cvtColor(img,cv2.COLOR_BGR2HSV) frame_threshed = cv2.inRange(hsv_img, ORANGE_MIN, ORANGE_MAX) cv2.imwrite('output2.jpg', frame_threshed)
This gives the same result as above. But the code is much simpler.