使用python控制ESP32时出现问题



有人知道我的代码出了什么问题吗?我正在尝试使用Python来控制esp32cam,但我不知道出了什么问题。

对不起,我不确定我是否正确发布了这个,因为这是我第一次问!这是我的密码。

在Casual博士的帮助下,我更改了代码(顺便说一句,谢谢!(,但我仍然有错误。更新了代码。

import cv2 as cv
import numpy as np
import urllib.request

# change to your ESP32-CAM ip
url = 'http://192.168.99.119/'       # hi or lo
winName = 'CAM'
cv.namedWindow("winName")
while 1:
imgResponse = urllib.request.urlopen(url)
imgNp = np.array(bytearray(imgResponse.read()), dtype=np.uint8)
img = cv.imdecode(imgNp, -1)
cv.imshow("winName", img)
tecla = cv.waitKey(5) & 0xFF
if tecla == 27:
break

cv.destroyALLWINDOWS()

错误代码如下

Traceback (most recent call last):
File "/Users/fangyaoting/PycharmProjects/pythonProject/TSET.py", line 10, in <module>
cv.namedWindow("winName")
AttributeError: module 'cv2' has no attribute 'namedWindow'

试试这个:

import cv2 as cv
import numpy as np
import urllib.request

# change to your ESP32-CAM ip
url = 'http://192.168.99.10/cam-lo.jpg'       #hi or lo
winName = 'CAM'
cv.namedWindow("winName")
while 1:
imgResponse = urllib.request.urlopen(url)
imgNp=np.array(bytearray(imgResponse.read()),dtype=np.uint8)
img=cv.imdecode(imgNp, -1)
cv.imshow("winName",img)
tecla = cv.waitKey(5) & 0xFF
if tecla == 27:
break

cv.destroyALLWINDOWS()

在python中,缩进非常重要:(

编辑:注意,我已经更改了以下

while 1:
imgResponse = urllib.request.urlopen(url)
imgNp=np.array(bytearray(imgResponse.read()),dtype=np.uint8)
img=cv.imdecode(imgNp, -1)

在缩进中,空格应始终为2(或4(。您使用了1,这会导致语法错误。

也缩进了这个位,因为看起来这应该是循环的一部分:

cv.imshow("winName",img)
tecla = cv.waitKey(5) & 0xFF
if tecla == 27:
break

最新更新