ich möchte im Online Modus eine am TXT angeschlossene USB-Kamera auf den PC Monitor streamen. Auf dem TXT läuft die Community Firmware und ich habe das FT-Gui gestartet.
Mit folgendem Code auf dem PC ist es mir möglich, Einzelbilder von der USB-Kamera einzulesen, auf dem PC zu speichern und in einem Fenster anzuzeigen:
Code: Alles auswählen
import numpy as np
import cv2
import ftrobopy
import time
txt=ftrobopy.ftrobopy('192.168.2.112')
txt.startCameraOnline()
time.sleep(3)
while True:
img = txt.getCameraFrame()
with open('txtimg.jpg','wb') as f:
f.write(bytearray(img))
frame = cv2.imread('txtimg.jpg', cv2.IMREAD_COLOR)
cv2.imshow('FT Cam', frame)
cv2.waitKey(0)
cv2.destroyAllWindows()
Code: Alles auswählen
= RESTART: I:\Zirkel\Fischertechnik\FT_Community\python_programs\online_test\online_test_cam_ftrobopy.py
Connected to TX2013 firmware version 4.7.0
Camera connected
================================ RESTART: Shell ================================
Code: Alles auswählen
import numpy as np
import cv2
import ftrobopy
import time
txt=ftrobopy.ftrobopy('192.168.2.112')
txt.startCameraOnline()
time.sleep(3)
while True:
img = txt.getCameraFrame()
cv2.imshow('FT Cam', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Code: Alles auswählen
= RESTART: I:\Zirkel\Fischertechnik\FT_Community\python_programs\online_test\online_test_cam_ftrobopy.py
Connected to TX2013 firmware version 4.7.0
Camera connected
Traceback (most recent call last):
File "I:\Zirkel\Fischertechnik\FT_Community\python_programs\online_test\online_test_cam_ftrobopy.py", line 14, in <module>
cv2.imshow('FT Cam', img)
cv2.error: OpenCV(4.8.0) :-1: error: (-5:Bad argument) in function 'imshow'
> Overload resolution failed:
> - mat is not a numpy array, neither a scalar
> - Expected Ptr<cv::cuda::GpuMat> for argument 'mat'
> - Expected Ptr<cv::UMat> for argument 'mat'
Ich habe auch noch folgendes versucht:
statt
Code: Alles auswählen
cv2.imshow('FT Cam', img)
Code: Alles auswählen
cv2.imshow('FT Cam', bytearray(img))
Ich habe den Eindruck, dass das Bild nicht direkt abgerufen kann.
Könnt Ihr mir bitte einen Tipp geben?
Danke und Gruß, uffi