hat schon mal einer von euch mit OpenCV gearbeitet? Ich habe massive Probleme auf meinen Ordner zuzugreifen und dann diese Bild Dateien auszuwerten.
Dazu gibt es leider schon echt viele Treads bei Stackoverflow oder sonstigen Foren. Ich sage leider, da ich nicht in der Lage bin es selbst zu lösen.
Code: Alles auswählen
from pathlib import Path
from seaborn import displot
from numpy import random as nrandom
import matplotlib.pyplot as plt
import cv2
from skimage.metrics import structural_similarity
# Pfad von dieser Datei
dataFolder = Path(__file__).resolve().parent # Absoluter Pfad zum Ordner dieser Datei, findet ihn automatisch heraus
# Erstelle Pfade zu den zu erstellenden/lesenden Bilddateien
image1FilePath = dataFolder / "507667061009.jpg"
image2FilePath = dataFolder / "507750060708.jpg"
def readImages():#
# Lese Images und zeige Differenzen
image1 = cv2.imread(str(image1FilePath)) # Lese Bilder mit opencv - wandle Path in ein string um mit str()
image2 = cv2.imread(str(image2FilePath))
# Bilder können angezeitg werden
cv2.imshow("test", image1)
cv2.waitKey(0) # Programm zeigt Bild und wartet bis eine Taste gedrückt wird
cv2.imshow("test2", image2)
cv2.waitKey(0)
# Convert images to grayscale
before_gray = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY)
after_gray = cv2.cvtColor(image2, cv2.COLOR_BGR2GRAY)
'''
cv2.imshow("before_gray", before_gray)
cv2.waitKey(0)
cv2.imshow("after_gray", after_gray)
'''
# Berechne Differenz und den Gleichheitsscore
(score, diff) = structural_similarity(before_gray, after_gray, full=True)
# Zeige Differenzen
cv2.imshow("difference", diff)
cv2.waitKey(0)
print("Image similarity", score)
readImages()
print("Fertig")
Code: Alles auswählen
raceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 3427, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-2-e9f8d3e7dbdc>", line 1, in <module>
runfile('/Users/nm/Desktop/Projektarbeit/wetterdatenanlyse-share/analysisModels/difference', wdir='/Users/nm/Desktop/Projektarbeit/wetterdatenanlyse-share/analysisModels')
File "/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/_pydev_bundle/pydev_umd.py", line 197, in runfile
pydev_imports.execfile(filename, global_vars, local_vars) # execute the script
File "/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "/Users/nm/Desktop/Projektarbeit/wetterdatenanlyse-share/analysisModels/difference", line 48, in <module>
readImages()
File "/Users/nm/Desktop/Projektarbeit/wetterdatenanlyse-share/analysisModels/difference", line 25, in readImages
cv2.imshow("test", image1)
cv2.error: OpenCV(4.5.1) /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/pip-req-build-yaf6rry6/opencv/modules/highgui/src/window.cpp:376: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'imshow'
Wenn ich die Datei im selben Skript erzeuge und auswerte funktioniert es. Ich muss aber leider auf die Dateien per Ordner hinterher manuell zu greifen.
Wenn irgendwer ne Ahnung hat, was ich falsch mache, dem gebe ich ein Kasten aus.
Beste Grüße
Nils