Нахождение среднего значения интенсивности пикселей изображения внутри контура - PullRequest
0 голосов
/ 23 октября 2019

Я нашел определенный контур на изображении. Я создал маску со всем черным изображением, за исключением граничных точек контура. Контур был нанесен на карту идеально. Нажмите здесь для изображения созданного контура.

Теперь я хочу перейти к исходному изображению и получить среднее значение интенсивности пикселей всех точек внутри этого контура исходного изображения. Когда я использую функцию cv.mean (), получаю ли я среднее значение только точек, указанных маской, т.е. только граничные точки или все точки внутри маски?

1 Ответ

0 голосов
/ 23 октября 2019

Самый простой способ сделать это - выделить пиксели на изображении, которые соответствуют местам, где маска белая. Если вам нужен пиксель на границе, используйте маску, как вы ее показали. Если вы хотите пиксель в (и на) границу;вместо этого нарисуйте его как заполненный контур (thickness=-1). Вот пример:

img = cv2.imread('image.jpg')
mask = cv2.imread('mask.png', 0)
locs = np.where(mask == 255)
pixels = img[locs]
print(np.mean(pixels))
...