Dies ist eine alte Version des Dokuments!
Bild von der Kamera einlesen:
capture= cv2.VideoCapture(0) res,bild=capture.read()
Bild in grau umwandeln:
bild_grau=cv2.cvtColor(bild,cv2.cv.CV_BGR2GRAY)
Kopie eines Bildes erstellen:
bild_kopie=bild.copy()
Bildgröße anzeigen (Zeilen, Spalten, (Anzahl der Farbkanäle)):
print "Shape ", bild.shape
Definieren der Zeilen und Spalten (Anzahl der Variablen muss gleich sein):
zeilen, spalten=bild.shape
Einen Punkt im „array“ verändert:
for i in range(zeilen): bild[j,i] = (255 , 255 , 255) --> "Schwarz"
Faltung (abstrakt):
bild=sig.convolve2d(A, B, Parameter)/255. (-> /255,da Grauwerte mit einem Wert nicht zwischen 255 und 0 sondern zwischen 0 und 1 gespeichert werden, "." damit es als double interpretiert wird(muss so sein))
Dafür muss man scipy.signal importieren, z.B als sig (s. oben)
speziell: „Entrauschungs-faltung“:
bild_neu=sig.convolve2d(bild_kopie, 0.1*np.array([[1,1,1],[1,2,1],[1,1,1]]),mode='valid')/255.
Beispiel für eine 5×5 entrauschungsmatrix:
bild_neu=sig.convolve2d(bild_kopie, (1/256.)*np.array([[1,4,6,4,1],[4,16,24,16,4],[6,24,36,24,6],[4,16,24,16,4],[1,4,6,4,1]]) ,mode='valid')/255.
Schwellenwert finden (Graubild → Schwarz-Weiß-Bild)
bildschwarzweiss=bildgrau.copy() zeilen, spalten=bildschwarzweiss.shape for i in range(0,zeilen): for j in range(0,spalten): if(bildgrau[i][j] < 0.3): bildschwarzweiss[i][j] = 0 else: bildschwarzweiss[i][j] = 1
Es gib 2 for-Schleifen, damit jeder Pixel in jeder Zeile und Spalte einzeln abgegangen wird. Für jeden Pixel wird abgewägt, ob der Grauwert über oder unter dem Schwellenwert (hier 0.3) liegt. Liegt er darunter, wird der Pixel schwarz (Grauwert 0), ist er darüber, wird er weiß (1).