Для считывания изображения с 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()
```
Этот код будет проверять успешность запроса перед обработкой изображения, и в случае ошибки выводить сообщение о проблеме и завершать работу программы.