Benutzer-Werkzeuge

Webseiten-Werkzeuge


ws1617:bilder_zu_bildern:protokolle:170119

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
ws1617:bilder_zu_bildern:protokolle:170119 [2017/01/19 16:26]
isabelschwermer angelegt
ws1617:bilder_zu_bildern:protokolle:170119 [2017/03/24 18:08] (aktuell)
Chai_Tee.95-Cara
Zeile 1: Zeile 1:
 === Protokoll vom 19. Januar 2017 === === Protokoll vom 19. Januar 2017 ===
  
 +Der folgende Code sortiert unerwünschte Werte aus unserem Kantenbild aus, mit dem Ziel das Kanten ohne Aussagekraft nicht mitberechnet werden.\\
 +Stand vom 5. Januar:
 +<code python>
 +#​!/​usr/​bin/​env python
 +# -*- coding: utf-8 -*-
  
 +import numpy as np
 +import matplotlib.pyplot as plt
 +from scipy import misc, ndimage
 +import cv2
 +bild=misc.imread('​hund_mittel_kl.jpg',​mode='​F',​)
 +
 +# Verschiebung in x-Richtung
 +b=ndimage.filters.sobel(bild,​ axis=-1)
 +
 +# Verschiebung in y-Richtung
 +b2=ndimage.filters.sobel(bild,​ axis=0)
 +
 +a=np.sqrt(b[1:,:​]**2+b2[:​-1,:​]**2) # b und b2 werden zum Kantenbild a verrechnet ​
 +plt.imshow(a,​cmap=plt.get_cmap('​gray'​))
 +</​code>​
 +
 +Mit der Percentile-Funktion wird dafür gesorgt, dass nur die 25% hellsten Punkte als Kandidaten aufgenommen werden. \\ Die Variablen z2 und s2 enthalten alle Zeilen und Spalten des Bildes (0,1,..,z-1 bzw 0,​1,​...,​s-1),​ im Folgenden werden alle xy-Koordinaten des Bildes in die zunächst leere Liste '​alle_koordinaten'​ gepackt. \\
 +Aus '​alle_koordinaten'​ werden schließlich alle Punkte aus den oberen 25% in einer neue Liste '​kandidaten'​ gesammelt.
 +<code python>
 +median2 = np.percentile(a,​75)
 +z = a.shape[0] #y
 +z2 = range(0,z)
 +
 +s = a.shape[1] #x
 +s2 = range(0,s)
 +
 +alle_koordinaten = []
 +for i in z2:
 + for j in s2:
 + alle_koordinaten.append((i,​j))
 +
 +kandidaten = [ p for p in alle_koordinaten ​  if a[p[0],​p[1]]>​median2 ​  ]
 +</​code>​
 +
 +Die Funktion '​kurvenversuch'​ setzt auf alle ermittelten Kandidaten einen blauen Punkt.
 +<code python>
 +def kurvenversuch():​
 + a_als_farbbild = cv2.cvtColor(a,​ cv2.COLOR_GRAY2BGR) #a ist ein s/w-bild, um farbe überhaupt anzeigen zu können, wird es in ein bgr konvertiert
 + for i,j in kandidaten:
 + cv2.circle(a_als_farbbild,​(j,​i),​1,​(1,​0,​0),​-1)
 + cv2.imshow("​1:",​a_als_farbbild)
 +
 +kurvenversuch()
 +</​code>​
 +
 +{{kurvenversuch12.png}} \\ **1:** die hellsten 25% \\ **2:** die hellsten 15%
ws1617/bilder_zu_bildern/protokolle/170119.1484839562.txt.gz · Zuletzt geändert: 2017/01/19 16:26 von isabelschwermer