Как считать изображение с ESP32 и обработать его в OpenCV с использованием языка программирования Python?

Как можно обновить код на Python для получения изображения с камеры подключенной к ESP32, которое выводится по адресу "http://мой-айпи/stream", чтобы избавиться от проблемы бесконечной загрузки изображения?
  • 27 марта 2024 г. 8:59
Ответы на вопрос 2
Для считывания изображения с ESP32 и его обработки в OpenCV с использованием Python, можно воспользоваться библиотеками requests и OpenCV. 

Ниже приведен пример кода, который демонстрирует как выполнить эту задачу:

```python
import requests
import numpy as np
import cv2

url = "http://мой-айпи/stream"

while True:
    response = requests.get(url)
    img_array = np.array(bytearray(response.content), dtype=np.uint8)
    img = cv2.imdecode(img_array, cv2.IMREAD_COLOR)
    
    cv2.imshow('Image', img)
    
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cv2.destroyAllWindows()
```

Чтобы избавиться от проблемы бесконечной загрузки изображения, можно добавить проверку на успешность запроса и прерывание по условию:

```python
import requests
import numpy as np
import cv2

url = "http://мой-айпи/stream"

while True:
    response = requests.get(url)
    
    if response.status_code == 200:
        img_array = np.array(bytearray(response.content), dtype=np.uint8)
        img = cv2.imdecode(img_array, cv2.IMREAD_COLOR)
    
        cv2.imshow('Image', img)
    
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        print("Error loading image. Exiting.")
        break

cv2.destroyAllWindows()
```

Этот код будет проверять успешность запроса перед обработкой изображения, и в случае ошибки выводить сообщение о проблеме и завершать работу программы.
А точно по адресу http://мой-айпи/stream лежит картинка? По адресу больше похоже на видеопоток, тогда естественно, что питон загрузить не может, поток ведь не кончается.
Похожие вопросы