1. Как описать обработку исключения при неудачной попытке подключится к трансляции IP-камеры в локальной сети?
Если использовать просто try/except, то ничего не происходит.
В консоли только ошибка, а до блока except не доходит, но программа не вылетает.
a1 = self.lineIPadress.text()
if a1 == '':
exPR.about(self, "Ошибка", "Поле IP-адреса не должно быть пустым.")
else:
#cam = cv2.VideoCapture('http://' + a1 + '/video')
#cam = cv2.VideoCapture(a1)
try:
w1 = cam.get(cv2.CAP_PROP_FRAME_WIDTH)
h1 = cam.get(cv2.CAP_PROP_FRAME_HEIGHT)
minW = 0.1*w1
minH = 0.1*h1
names = facename
while(cam.isOpened()):
ret, img =cam.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(
gray,
scaleFactor = 1.2,
minNeighbors = 5,
minSize = (int(minW), int(minH)),
)
for(x,y,w,h) in faces:
cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), 2)
id, confidence = recognizer.predict(gray[y:y+h,x:x+w])
if (confidence < 100):
id = names[id]
confidence = " {0}%".format(round(100 - confidence))
else:
id = "unknown"
confidence = " {0}%".format(round(100 - confidence))
cv2.putText(img, str(id), (x+5,y-5), font, 1, (255,255,255), 2)
cv2.putText(img, str(confidence), (x+5,y+h-5), font, 1, (255,255,0), 1)
cv2.imshow('Camera',img)
k = cv2.waitKey(10) & 0xff # Press 'ESC' for exiting video
if k == 27:
break
cam.release()
cv2.destroyAllWindows()
except:
print("ошибка")
2. Что лучше писать в конце IP-адреса, чтобы подключиться к любой IP-камере в локальной сети, если в ней нет пароля/логина?
Например,
192.168.43.1:8080/video(в таком случае работает, если телефон использовать как IP-камеру) или
192.168.43.1:8080/1