Текст темнее и менее насыщенный.И как предложено как @JD, цветовое пространство HSV
хорошо.Но его диапазон неверен.
В OpenCV, H колеблется в [0, 180], в то время как S / V колеблется в [0, 255]
Вот цветовая карта, которую я сделал в прошлом году, я думаюэто полезно.
![](https://i.stack.imgur.com/TSKh8.png)
(1) Использование cv2.inRange
(2) Просто пороговое значение для канала V(HSV)
:
th, threshed = cv2.threshold(v, 150, 255, cv2.THRESH_BINARY_INV)
(3) Просто пороговое значение для канала S(HSV)
:
th, threshed2 = cv2.threshold(s, 30, 255, cv2.THRESH_BINARY_INV)
Результат:
![enter image description here](https://i.stack.imgur.com/O8Rj0.png)
Демонстрационный код:
# 2018/12/30 22:21
# 2018/12/30 23:25
import cv2
img = cv2.imread("test.png")
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h,s,v = cv2.split(hsv)
mask = cv2.inRange(hsv, (0,0,0), (180, 50, 130))
dst1 = cv2.bitwise_and(img, img, mask=mask)
th, threshed = cv2.threshold(v, 150, 255, cv2.THRESH_BINARY_INV)
dst2 = cv2.bitwise_and(img, img, mask=threshed)
th, threshed2 = cv2.threshold(s, 30, 255, cv2.THRESH_BINARY_INV)
dst3 = cv2.bitwise_and(img, img, mask=threshed2)
cv2.imwrite("dst1.png", dst1)
cv2.imwrite("dst2.png", dst2)
cv2.imwrite("dst3.png", dst3)
Как обнаружить цветные пятна на изображении с помощью OpenCV?
Как определить пороговое значение для обнаружения на изображении только объектов зеленого цвета: Opencv