Python 仅为图像的特定点计算相邻像素的平均像素强度,并存储在n维数组中

Python 仅为图像的特定点计算相邻像素的平均像素强度,并存储在n维数组中,python,python-3.x,image,opencv,matplotlib,Python,Python 3.x,Image,Opencv,Matplotlib,我正在做一个人脸识别任务,我想从人脸图像中的特定关键位置提取人脸特征。但对于这样的任务,我需要计算该特定部分相邻区域的平均像素值。由于没有算法,我是手工操作的。这是一个详尽的过程。我就是这样做的: img = plt.imread(path) img[25, 40] = 0 img[25, 41] = 0 img[25, 39] = 0 img[26, 40] = 0 img[26, 39] = 0 img[26, 41] = 0 img[24, 39] = 0 img[24, 40] = 0

我正在做一个人脸识别任务,我想从人脸图像中的特定关键位置提取人脸特征。但对于这样的任务,我需要计算该特定部分相邻区域的平均像素值。由于没有算法,我是手工操作的。这是一个详尽的过程。我就是这样做的:

img = plt.imread(path)
img[25, 40] = 0
img[25, 41] = 0
img[25, 39] = 0
img[26, 40] = 0
img[26, 39] = 0
img[26, 41] = 0
img[24, 39] = 0
img[24, 40] = 0
img[24, 41] = 0
img[25, 110] = 0
img[25, 111] = 0
img[25, 109] = 0
img[24, 109] = 0
img[24, 110] = 0
img[24, 111] = 0
img[26, 109] = 0
img[26, 110] = 0
img[26, 111] = 0
img[25, 170] = 0
img[25, 171] = 0
img[25, 169] = 0
img[24, 170] = 0
img[24, 171] = 0
img[24, 169] = 0
img[26, 170] = 0
img[26, 169] = 0
img[26, 171] = 0
img[40, 40] = 0
img[40, 41] = 0
img[40, 39] = 0
img[41, 40] = 0
img[41, 41] = 0
img[41, 39] = 0
img[39, 40] = 0
img[39, 39] = 0
img[39, 41] = 0
img[50, 110] = 0
img[50, 111] = 0
img[50, 109] = 0
img[51, 110] = 0
img[51, 111] = 0
img[51, 109] = 0
img[49, 110] = 0
img[40, 170] = 0
img[40, 171] = 0
img[40, 169] = 0
img[39, 170] = 0
img[39, 171] = 0
img[39, 169] = 0
img[41, 170] = 0
img[41, 171] = 0
img[41, 169] = 0

plt.imshow(img)
我想做的基本上是有一个更好的方法来计算图像中20个坐标中心附近3x3像素的平均值,并存储在n维向量中。或者需要更多说明:对于choosen关键点1,计算3x3邻域中的平均值,存储该值。关键点2计算3x3邻域中的平均值,并存储该值。对于与图像中的坐标x和y对应的任何给定关键点。


每个关键点是一个网格的平均值,该网格有3x3个像素,我需要获取平均值并存储在20d数组中。最好的方法是什么?

在Python/OpenCv中,只需使用cv2.blur()对整个图像进行3x3块平均。然后,只需在模糊图像中获取所需点的像素值