Open CV mit Python - Problem imshow

  • Hallo, ich versuche, folgende Kombination zum Laufen zu bringen: Raspberry Pi 3 mit Raspian (aktuelle version) python mit opencv in VS Code, um Bildverarbeitung anzuwenden Das ganz soll remote per SSH von einem Rechner im Netz erfolgen. Remotverbindung etc funktioniert alles, habe die OPEN CV wie folgt installiert / eingebunden: https://singleboardblog.com/install-python…n-raspberry-pi/ Das Problem ist, dass ich mit einem einfachen Testprogramm, die imshow Funktion nicht verwenden kann: in einem einfach test.py verwende ich folgende zeilen

    Code
    import cv2
    img = cv2.imread("/home/danielferstner/Desktop/cat.jpg")
    cv2.imshow("Testimage",img)
    cv2.waitKey(0)

    Wenn ich Debugging starte, komme ich über die zweite zeile, das bild wird also in "img" eingelesen; ich sehe auch die Matrixinhalte in den lokalen Variablen... Aber in Zeile 3 bei der imshow methode gibt es dann ein Problem: Fehlermeldung siehe Anhang. Woran könnte das liegen? Ich habe die fertigen binaries von openCV eingebunden / installiert... Hat hier jemand eine Idee, es wäre natürlich schön wenn man die ImShow Funktion verwenden könnte... Danke!

  • Habe nun auch die Fehlerbeschreibung angehängt, hatte das vergessen.

    Noch eine Zusatzinfo: Die Installation von libgtk2.0-dev, wie in der Fehlermeldung vorgeschlagen, schlägt fehl. Habe es mit:

    pip install libgtk2.0-dev versucht, dann kommt die Fehlermeldung zurück:

    ERROR: Could not find a version that satisfies the requirement libgtk2.0-dev (from versions: none)

    ERROR: no matching distribution found for libgtk2.0-dev

  • Werner43 Du schreibst Du hast das nach der Anleitung in dem Link installiert, dort werden aber *vier* Alternativen beschrieben. Welche davon hast Du denn installiert?

    Und was heisst remote genau? Du bist per SSH angemeldet und versuchst darüber eine grafische Anwendung zu starten? Wo soll das denn angezeigt werden? Da muss irgendwo ein X-Server laufen und die DISPLAY-Umgebungsvariable entsprechend gesetzt sein.

    “Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”

  • __blackjack__: ich habe die variante "opencv-contrib-python" gewählt. Die OS variante ist übrigens keine headless, d.h. mit desktop umgebung.

    Mit remote meine ich folgendes: ich habe am Raspi SSH aktiviert und verbinde von meinem Laptop, der im gleichen Netz hängt, per SSH direkt im Visual Studio Code, sodass ich quasi "direkt" am raspi" entwickle, nur halt über SSH über meinen Laptop.

    Wie würdet Ihr diese Thema angehen? Es gibt hier zahlreiche Beschreibungen / Ansätze im Netz, habe schon mindestens 5 versucht, alles sind grundsätzlich anders und keine funktioniert. Gibt es für meine Anforderung irgendeine Step-by-Step Anleitung, wie ich das aufsetzen kann? Ich dachte, so eine Bildverarbeitung mit Raspi und Open CV sollte eine Standardanwendung sein, aber nach zahlreichen Recherchen funktioniert es leider nicht.

    Vielen Dank für Eure Unterstützung!

  • Ich wäre auch bereit, das gesamte System nochmal neu aufzusetzen, wenn es jemanden gibt, der mir beschreibt wie er das angehen würde. Die Anforderung nochmals zusammengefasst:

    Raspberry 3 Model B mit Raspberry Pi Cam

    OS: Raspberry PI OS, aktuelle Version(?)

    Programmieren im Visual Studio Code von einem Rechner im gleichen Netz per SSH

    Programmieren in Python mit Open CV, von Open CV sollten alle Funktionen verwendbar sein

    Vielen Dank!

  • Hallo nochmal, ich habe hier auch noch eine interessante Zusatzinfo gefunden (hier ist übrigens auch beschrieben, was ich mit remote per SSH meine):

    Set Visual Studio code for OpenCV python | MLearning.ai (medium.com)

    Hier etwas runterscrollen zur Überschrift "Raspberry Pi Developer" - hier steht genau das im ersten Absatz. Es steht hier aber auch:

    but you have one problem when working with OpenCV since SSH does not allow show(view) a window when you working with Opencv Window while showing the image

    eventuell ist es mit dieser Konfiguration gar nicht möglich, das Bild anzuzeigen?

    Wie würdet ihr das anegehen?

    Danke!

  • Hi keepfear,

    danke für diesen Vorschlag - d.h. VNC ist so ähnlich wie die Verbindung per SSH, nur dass ich dann wirklich den kompletten Desktop auf meinem Remote Rechner (in diesem Fall mein Laptop) sehe? Welche Programmierumgebung könnte ich dann dafür verwenden, z.B. jene die direkt mit dem Raspberry OS mitkommen, z.B. Thonny oder Geany?

    Danke!

  • Hallo,

    danke Euch beiden mal für diese Inputs, ich werde das mal versuchen!

    hyle: ok, aber wenn ich nur das Skript über das Terminal per SSH aufrufe, kann ich maximal Ausgaben in die Konsole sehen, oder? Wenn ich mit Bildverarbeitung und OpenCV arbeite, will ich mir manchmal auch die Bilder ansehen, z.B. nach einem Filter etc... Ich nehme an das ist mit remote per SSH und einfacher Ausführung per Terminalstart nicht möglich, oder?

    Aus meiner Sicht sollte das aber dann mit VNC möglich sein, wenn ich direkt den Desktop sehe...

    Sind diese Gedanken korrekt?

    Danke nochmals!!

  • , aber wenn ich nur das Skript über das Terminal per SSH aufrufe

    ...wird das einen Fehler werfen.

    Programmieren per SSH (oder SCP) geht, aber aufrufen musst Du das Skript im Terminal per VNC auf dem Desktop, denn der Aufruf braucht einen X-Server.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!