используйте функцию cv.inRange() для извлечения определенного цветного объекта из изображения
Для извлечения определенного цветного объекта из изображения можно использовать функцию cv.inRange(). В этом примере мы извлечем синий объект из изображения.
Определение диапазона цвета
Сначала определите нижние и верхние границы синего цвета в цветовом пространстве HSV:
## Синий цвет в HSV представляется при оттенке около 240 градусов из 360.
## Диапазон оттенков в OpenCV-HSV составляет 0-180, чтобы хранить значение в 8 битах.
## Таким образом, синий цвет в OpenCV-HSV представляется значением H около 240 / 2 = 120.
## Чтобы правильно определить синий цвет, можно выбрать следующие значения:
blue_lower = np.array([100, 150, 0], np.uint8)
blue_upper = np.array([140, 255, 255], np.uint8)
Пороговая обработка изображения
Пороговая обработка изображения в HSV, чтобы оставить только синие цвета:
## Маска для синего цвета
blue_mask = cv.inRange(hsv_image, blue_lower, blue_upper)
Применение маски
Примените маску к исходному изображению, чтобы извлечь синий объект:
## Используйте маску для извлечения синего объекта
blue_object = cv.bitwise_and(image, image, mask=blue_mask)
Отображение извлеченного объекта
Отобразите исходное изображение и извлеченный синий объект:
## Сохраните изображение в указанный файл
cv.imwrite('blue_object.jpg', blue_object)