在python中找到图像中每个框的均值

时间:2019-03-01 04:43:18

标签: python python-3.x opencv image-processing computer-vision

我有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 :(得分:1)

因此,您真正要做的就是缩小图像。假设我们的图片是256x256像素,我们想将其缩小到32x32像素。这意味着我们将要缩小到原始大小(32/256)的1/8。这也意味着每个框将为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)

这应该使您了解需要使用宽度/高度坐标来计算正确的调整大小值的情况。