При розробці програмного забезпечення для аналізу кліків на зображеннях та генерації теплових карт у додатку Streamlit стикаємося з низкою цікавих технічних викликів та можливостей для вдосконалення функціоналу. Одним із таких випадків є створення функціоналу, що дозволяє користувачам взаємодіяти з зображенням шляхом кліків та побудови на його основі теплової карти. У цій статті ми розглянемо процес створення такого додатку з використанням мови програмування Python та бібліотек Streamlit, NumPy та OpenCV.
Одним із ключових аспектів такого додатку є можливість відстежування координат кліків користувачів на зображенні та агрегація цих даних для побудови теплової карти. Для цього ми можемо скористатися бібліотекою OpenCV для обробки зображення та визначення координат кліків, а також Streamlit для створення веб-інтерфейсу та візуалізації даних.
Під час розробки додатку необхідно вирішити декілька важливих завдань, включаючи обмеження користувачів щодо можливості клікати лише один раз, а також можливість завантажити агреговані дані про всі кліки за допомогою адміністративного облікового запису.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
def main(): import streamlit as st import numpy as np import cv2 # Завантаження зображення image = cv2.imread('image.jpg') # Функція для обробки кліків користувача def handle_click(x, y): # Обробка координат кліку # Додавання координат до агрегованих даних # Відображення зображення на сторінці Streamlit st.image(image, use_column_width=True, clamp=True) # Визначення реакції на клік користувача st.canvas(on_click=handle_click) # Виклик головної функції if __name__ == "__main__": main() |