Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws1617:bilder_zu_bildern:protokolle:170105

Protokoll vom 5. Januar 2017

Der folgende Code stellt unser aktuelles Kantenerkennungsprogramm dar. Dieses ist in drei Schritte unterteilt. Als erstes wird ein Bild eingelesen, rauschvermindert und dann in x- und y-Achsenrichtung verschoben. Zum Schluss werden diese beiden Verschiebungsbilder dann miteinander verrechnet, sodass das dargestellte Ergebnis entsteht.

import numpy as np
import matplotlib.pyplot as plt
from scipy import misc, ndimage, signal
import cv2
 
bild=misc.imread('hund_mittel_kl.jpg',mode='F',)
bild=ndimage.filters.gaussian_filter(bild,1) #Rauschverminderung
 
# x-Achsenverschiebung
b=ndimage.filters.sobel(bild, axis=-1)
cv2.namedWindow("Fenster 1")
cv2.imshow("Fenster 1",b)
 
# y-Achsenverschiebung
b2=ndimage.filters.sobel(bild, axis=0)
cv2.namedWindow("Fenster 2")
cv2.imshow("Fenster 2",b2)
 
cv2.waitKey(0)
cv2.destroyAllWindows()
 
a=np.sqrt(b[1:,:]**2+b2[:-1,:]**2) # Betrag der x/y-Verschiebung
plt.imshow(a,cmap=plt.get_cmap('gray'))
plt.show()

Original:
hund_mittel_kl.jpg

Nach Verschiebung in x- und y-Richtung
untitled-1.jpg

Endergebnis:


Weiterführende Aufgaben:
  • das gleiche nochmal, das Bild aber im RGB-Modus belassen, also bei der Kantenerkennung die Farbinformationen mit einbeziehen
  • Wie bringt man Turtle dazu, die Konturen nachzuzeichnen? zB, indem sie die Nachbarweißpunkte entlang geht?(Mittlung dieser Daten?) ✔
ws1617/bilder_zu_bildern/protokolle/170105.txt · Zuletzt geändert: 2017/03/24 17:43 von Chai_Tee.95-Cara