将图像分成4x4块,并计算Python中的黑白像素数

将图像分成4x4块,并计算Python中的黑白像素数,python,opencv,image-processing,python-imaging-library,Python,Opencv,Image Processing,Python Imaging Library,我有一个512x512像素的二进制图像,我想把它分成4 x 4个像素的块,并计算一个块中黑色像素的数量。如果块中黑色像素的总和为偶数,则相应块的值为0。否则,该值为1。我该怎么做 您可以尝试将图片加载为numpy数组,然后为x维度和y维度创建两个偏移量为4的循环。我的建议是: import matplotlib.pyplot as plt import numpy as np image = plt.imread('myplot1.png') image = np.array(image) i

我有一个512x512像素的二进制图像,我想把它分成4 x 4个像素的块,并计算一个块中黑色像素的数量。如果块中黑色像素的总和为偶数,则相应块的值为0。否则,该值为1。我该怎么做

您可以尝试将图片加载为numpy数组,然后为x维度和y维度创建两个偏移量为4的循环。我的建议是:

import matplotlib.pyplot as plt
import numpy as np

image = plt.imread('myplot1.png')
image = np.array(image)
image = image[:,:,1] #if RGB

print(image.shape)


for x in np.arange(0,image.shape[0]):
    for y in np.arange(image.shape[1]):
        if x+4 < image.shape[0] and y+4 < image.shape[1]:
            sum = np.sum(image[x:x+4,y:y+4])
            if sum > 4:
                image[x:x + 4, y:y + 4] = 1
            elif sum < 4:
                image[x:x + 4, y:y + 4] = 0
导入matplotlib.pyplot作为plt
将numpy作为np导入
image=plt.imread('myplot1.png')
image=np.数组(image)
图像=图像[:,:,1]#如果是RGB
打印(图像.形状)
对于np.arange(0,image.shape[0])中的x:
对于np.arange中的y(image.shape[1]):
如果x+44:
图像[x:x+4,y:y+4]=1
elif总和<4:
图像[x:x+4,y:y+4]=0