Найти среднее значение каждой коробки на изображении в Python - PullRequest
0 голосов
/ 01 марта 2019

У меня есть это изображение с 9 маленькими прямоугольниками (черно-белыми) шириной = x и высотой y.Мне нужно среднее значение пикселов для каждого маленького прямоугольника.

Изначально я преобразовал изображение в массив как

image = cv2.imread('x.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

enter image description here

вот что я пробовал, но есть ошибки.

box_pixels = []
temp = []
p, q, r, s = 0, x, 0, y
while q <= gray.shape[0]:
    temp.append([])
    while s <= gray.shape[1]:
        for i in range(p, q):
            for j in range(r, s):
                temp.append(gray[i][j])
        r = s
        s = s+y
    p = q
    q = q + x
    box_pixels.append(temp)

print(box_pixels)

Я не могу понять, что делать для среднего?

1 Ответ

0 голосов
/ 01 марта 2019

Итак, все, что вы действительно пытаетесь сделать, это уменьшить изображение.Допустим, наше изображение имеет размер 256x256 пикселей, и мы хотим уменьшить его до 32x32 пикселей.Это означает, что мы собираемся в 1/8 размера оригинала (32/256).Это также означает, что каждое поле будет 8x8 пикселей.Итак, чтобы выполнить изменение размера:

image = cv2.imread('x.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
resized = cv2.resize(gray, None, fx=32/256, fy=32/256, interpolation=cv2.INTER_AREA)

Это должно дать вам представление о том, что вам нужно делать с координатами ширины / высоты для вычисления правильного значения изменения размера.

...