Генерация тепловых карт из пиксельных координат - PullRequest
0 голосов
/ 17 мая 2019

У меня есть набор значений пикселей, которые я хотел отобразить на изображении как тепловую карту. Мои значения пикселей выглядят примерно так: это координаты x, y пикселей изображения произвольного разрешения.

pixel values = [[1,1],[2,1],[3,1],[4,1],[2,1]]

Я пытался использовать OpenCV, но не понимаю, как заставить его работать. Я предполагаю, что должно быть сгенерировано распределение вероятности / плотности, или, возможно, функция построения графика может сделать это автоматически? Поскольку изображение загружается с использованием OpenCV, я искал функцию OpenCV, если Matplotlib работает, пожалуйста, оставьте комментарий.

heatmap_array = np.array(heatmap)
cv_colormap = cv2.applyColorMap(heatmap_array[0:], cv2.COLORMAP_HOT)
cv2.imwrite("colormap_gen.jpg", cv_colormap)

Должно быть слегка непрозрачное наложение тепловой карты поверх исходного изображения.

1 Ответ

1 голос
/ 17 мая 2019

Вы можете попробовать с Matplotlib:

# sample data
# xy can be np.array(pixel_values)
np.random.seed(1)
xy = np.random.multivariate_normal([300,300], [[2000,400],[400,1000]], 2000000)

# compute the hist
# bins here are the size of the image
hist,_,_ = np.histogram2d(xy[:,0], xy[:,1], bins=(600,800))

# show heatmap by plt
# you can use plt to save the figure
fig = plt.figure(figsize=(12,8))
plt.imshow(hist,cmap='hot')
plt.axis('off')
plt.show()

Вывод:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...