#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. Я отредактировал свой пост, чтобы дать объяснение того, что я хочу сделать. Извините за путаницу.