Forum: Compiler & IDEs OpenCV imshow python mit raspi


von Hans F. (dani1632)


Angehängte Dateien:

Lesenswert?

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-opencv-on-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
1
import cv2
2
img = cv2.imread("/home/danielferstner/Desktop/cat.jpg")
3
cv2.imshow("Testimage",img)
4
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!

von Kaj G. (Firma: RUB) (bloody)


Lesenswert?

Daniel F. schrieb:
> 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...
In dem Fehler steht exakt, was das Problem ist und was du tun musst, um 
das zu beheben.

von Hans F. (dani1632)


Lesenswert?

Ja, ich habe aber die fertigen Binaries eingebunden, und kein CMAKE 
verwendet - bedeutet das, dass ich die open CV nun mit Cmake selber 
"bauen" muss?

Danke,

von Kaj G. (Firma: RUB) (bloody)


Lesenswert?

Daniel F. schrieb:
> bedeutet das, dass ich die open CV nun mit Cmake selber
> "bauen" muss?
Ja, genau das.

von Sheeva P. (sheevaplug)


Lesenswert?

Kaj G. schrieb:
> Daniel F. schrieb:
>> bedeutet das, dass ich die open CV nun mit Cmake selber
>> "bauen" muss?
> Ja, genau das.

Hm, ich weiß ja nicht... wenn er nicht eines der "-headless"-Pakete 
installiert hat, sollte imshow() enthalten sein. Vielleicht ist es einen 
ersten Versuch wert, die in der Fehlermeldung genannten Bibliotheken 
libgtk2.0-dev und pkg-config zu installieren.

von Hans F. (dani1632)


Lesenswert?

Hallo,

das habe ich versucht, bin aber bei der ersten schon gescheitert 
(libgtk2.0-dev). Es kam eine Fehlermeldung, dass es das Paket nicht 
gibt...

von Hans F. (dani1632)


Lesenswert?

Habe es jetzt nach Recherchen über einen Umweg mit matplotlib versucht 
(offensichtlich funktioniert CV2.imshow() nicht, wenn man remote per SSH 
arbeitet...

Nach der Installation des Packages matplotlib verwende ich nun folgenden 
Code in dem Python Skript:
1
import matplotlib.pyplot as plt
2
import cv2
3
img = cv2.imread("/home/dharrich/Desktop/cat.jpg")
4
5
imgRGB = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
6
7
plt.imshow(imgRGB)
8
plt.show()

Ich bekomme jetzt keinen Fehler mehr beim ausführen bzw debuggen, es 
scheint also korrekt installiert und auch eingebunden zu sein. 
Allerdings gibt es keine Ausgabe des Bildes, es passiert einfach 
"nichts".

Hat hiermit jemand Erfahrung?

Danke!

von Florian L. (muut) Benutzerseite


Lesenswert?

Wenn du remote per SSH drauf bist, wo soll da ein Bild angezeigt werden?

von Hans F. (dani1632)


Lesenswert?

Ja, funktioniert das dann überhaupt, dass man dann irgendwie das Bild 
remote anzeigen kann? Gibt es hier überhaupt eine Möglichkeit? Ich sehe 
doch auch Variablen etc remote, warum soll es dann nicht möglich sein 
das Bild anzuzeigen?

von Jw E. (jweu3)


Lesenswert?

Connecte dich mit
ssh -Y user@host
und dann klappt das bestimmt...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.