подсчет общего количества пикселей белого цвета в изображении - PullRequest
2 голосов
/ 05 марта 2020

Я хотел бы посчитать количество белых пикселей в этом изображении . Я определил следующее значение HSV для белого цвета.

# white color
low_white = np.array([0, 0, 0])
high_white = np.array([0, 0, 255])
white_mask = cv2.inRange(hsv_frame, low_white, high_white)
white= cv2.bitwise_and(frame, frame, mask=white_mask)

Однако из-за погодных условий и тени на изображении все белые пиксели не считаются белыми. Он рассматривает только верхнюю часть кабины как белую. Как включить максимальную цветовую гамму в определение HSV белого цвета?

1 Ответ

1 голос
/ 05 марта 2020

Вы можете настроить чувствительность, как описано в этом сообщении

Чтобы решение работало лучше, вы также можете сначала увеличить яркость:

import numpy as np

frame = cv2.imread('truck.png')

# Incere frame brighness
bright_frame = cv2.add(frame, 50)

# Conver image after appying CLAHE to HSV
hsv_frame = cv2.cvtColor(bright_frame, cv2.COLOR_BGR2HSV)

sensitivity = 70  # Higher value allows wider color range to be considered white color
low_white = np.array([0, 0, 255-sensitivity])
high_white = np.array([255, sensitivity, 255])

white_mask = cv2.inRange(hsv_frame, low_white, high_white)
white = cv2.bitwise_and(frame, frame, mask=white_mask)

cv2.imwrite('white.png', white)  #Save out to file (for testing).


# Show result (for testing).
cv2.imshow('white', white)
cv2.waitKey(0)
cv2.destroyAllWindows()

Результат :

enter image description here

Ну ...
Множество серых пикселей на фоне отображаются белым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...