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: