Active Contour Kantendetektion

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
edele17
User
Beiträge: 5
Registriert: Dienstag 27. Februar 2018, 14:48

Hallo zusammen,

für eine Kantendetektion möchte ich das "Active Contour Model" verwenden.
folgenden Programmcode habe ich dazu gefunden.

Code: Alles auswählen


img=cv2.imread("1.4301_20x_dunkel.png",0)
plt.imshow(img)
rows , cols=img.shape

s = np.linspace(0, 2*np.pi, 400)
x = 1250 +100*np.cos(s)
y = 750 + 100*np.sin(s)
init = np.array([x, y]).T



snake = active_contour(gaussian(img, 3),
                      init, alpha=-0.015, beta=10, gamma=0.001)

fig, ax = plt.subplots(figsize=(7, 7))
ax.imshow(img, cmap=plt.cm.gray)
ax.plot(init[:, 0], init[:, 1], '--r', lw=3)
ax.plot(snake[:, 0], snake[:, 1], '-b', lw=3)
ax.set_xticks([]), ax.set_yticks([])
ax.axis([0, img.shape[1], img.shape[0], 0])

http://scikit-image.org/docs/dev/auto_e ... tours.html

Das Problem an diesem Beispiel ist, dass es die Kanten in einem Kreis sucht. Für meine Anwendung benötige ich allerdings eine Ellipse und eine Rechteck.

Leider finde ich dazu nichts passendes.

Vielen Dank für eure Hilfe
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist doch einfach eine PCA ueber deine Kontourpunkte. Wahrscheinlich findet die unter der Haube sogar statt.

https://en.wikipedia.org/wiki/Principal ... t_analysis

Dazu findest du bestimmt auch was fuer numpy/scikit.
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Vergiss was ich gesagt habe, ich glaube ich habe da was missverstanden.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Ohne mir jetzt die Dokumentation anzuschauen: Zeilen 6 bis 9 sehen verdächtig danach aus was du suchst.
Das Leben ist wie ein Tennisball.
edele17
User
Beiträge: 5
Registriert: Dienstag 27. Februar 2018, 14:48

Hallo EyDu,
danke für deine Antwort.
In den Zeilen 6 bis 9 werden die Koordienaten für einen Kreis bestimmt.
Mein Problem ist das ich aber eine Ellipse und ein Rechteck benötige und ich leider nicht weis wie ich den Code dafür ändern muss.

Beste Grüße
edele17
User
Beiträge: 5
Registriert: Dienstag 27. Februar 2018, 14:48

Danke für eure Hilfe.
Konnte das Problem nun lösen
Antworten