как найти среднее значение максимальной интенсивности изображения после построения 3D-графика поверхности?

#python #numpy #matplotlib #image-processing

#python #numpy #matplotlib #обработка изображений

Вопрос:

Я строю 3D-график поверхности, используя изображение. Ниже приведен мой код:

 x = np.arange(768)
y = np.arange(576)


X, Y = np.meshgrid(x, y)

Z = cv2.imread('F:Multispectral ImagingReadingsDifferent images while studying openCVThreshold 
imagesPlasticsPETPET 460 nmwith 460 nm filter.bmp', -1)


fig = plt.figure(figsize=(15,15))
ax1 = fig.add_subplot(111, projection='3d')

mycmap = plt.get_cmap('gist_earth')
ax1.set_title('gist_earth color map')
surf1 = ax1.plot_surface(X, Y, Z, cmap=mycmap)
fig.colorbar(surf1, ax=ax1, shrink=0.5, aspect=5)
plt.show()
  

После построения графика я вижу это:
введите описание изображения здесь

Я хочу узнать среднее значение максимальной интенсивности. Я думал о том, чтобы найти координату (x и y) точки, где интенсивность максимальна (255), а затем выбрать область вокруг этой точки (например: 10 * 10 пикселей) и найти ее среднее значение, которое может дать мне среднюю интенсивность? Имеет ли это смысл? Если это так, как я могу это сделать? Кроме того, мой размер пикселей составляет 768 * 576. После построения этой 3D-поверхности я использую метод array = surf1.get_array()

и получил что-то размером (2304,). Почему такой размер? Почему не 768 * 576? `

Комментарии:

1. Что вы имеете в виду среднее значение максимума?

2. Я отредактировал свой пост, чтобы дать объяснение того, что я хочу сделать. Извините за путаницу.