Как найти значение RGB ограниченной области в изображении с помощью Python? - PullRequest
0 голосов
/ 14 ноября 2018

Предположим, у меня есть изображение и мне нужно найти, где я рисую прямоугольник, используя

cv2.rectangle (изображение, (250,70), (150,45), (0,255,0), 5)

на изображении?

Как найти значения этого прямоугольника в cv / python?

1 Ответ

0 голосов
/ 14 ноября 2018

Да, можно извлечь значение RGB региона в ограничительной рамке.

Если вы прочитаете изображение с CV2, то оно уже будет представлено как BGR.Все, что вам нужно сделать, это найти точку в ограничительной рамке и извлечь значение BGR точки.Примечание. Я использую BGR, потому что именно так OpenCV считывает изображения.

Используя вершины ограничивающего прямоугольника, который вы использовали, просто вычислите среднюю точку в ограничивающем прямоугольнике и извлеките значение BGR для этой срединной точки в изображении.

# midpoint is ((y_max - y_min) // 2 + y_min, (x_max - x_min) // 2 + x_min)
point = ((70 - 45) // 2 + 45, (250 - 150) // 2 + 150)

b, g, r = image[point]

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

# image[y_min:y_max, x_min:x_max]
region = image[45:70, 150:250]

b, g, r = np.mean(region, axis=(0, 1))
...