#python #opencv #visual-studio-code
#питон #opencv #cvzone
Вопрос:
Я учусь использовать opencv, но сталкиваюсь с этой проблемой.
from cvzone.HandTrackingModule import HandDetectorimport cv2cap = cv2.VideoCapture("https://192.168.178.49:8080/video")detector = HandDetector(maxHands=1, detectionCon=0.7)while True: success, img= cap.read() img = detector.findHands(img) cv2.imshow("AI", img) cv2.waitKey(1)
Приводит к этой ошибке:
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.Traceback (most recent call last): File "d:ProgrammingArm Codetesthandai.py", line 13, in lt;modulegt; cv2.imshow("AI", img)cv2.error: OpenCV(4.5.4) :-1: error: (-5:Bad argument) in function 'imshow'gt; Overload resolution failed:gt; - mat is not a numerical tuplegt; - Expected Ptrlt;cv::cuda::GpuMatgt; for argument 'mat'gt; - Expected Ptrlt;cv::UMatgt; for argument 'mat'
Я использую 64-разрядный Python 3.8 и последнюю версию для всех пакетов.Спасибо.
Ответ №1:
Вывод detector.findHands(img)
— это кортеж. Вы должны предоставить второй его элемент в качестве входных данных для cv2.imshow()
:
from cvzone.HandTrackingModule import HandDetectorimport cv2cap = cv2.VideoCapture("https://192.168.178.49:8080/video")detector = HandDetector(maxHands=1, detectionCon=0.7)while True: success, img= cap.read() img = detector.findHands(img) cv2.imshow("AI", img[1]) cv2.waitKey(1)