Ecken- und Blob-Erkennung
Eckenerkennung
Die Eckenerkennung dient zur Identifizierung von starken Intensitätsänderungen an Stellen, an denen sich zwei Kanten treffen. Sie unterstützt das Merkmalsabgleich, die Objektverfolgung und die Strukturerkennung.
Gängige Methoden:
Harris-Eckendetektor (
cv2.cornerHarris
): erkennt Ecken basierend auf Gradientenänderungen;
Shi-Tomasi-Eckendetektor (
cv2.goodFeaturesToTrack
): wählt die stärksten Ecken in einem Bild aus;
Blob-Erkennung
Die Blob-Erkennung findet Bereiche mit ähnlicher Intensität in einem Bild und ist nützlich für die Objekterkennung und -verfolgung.
Eine der gängigen Methoden zur Blob-Erkennung ist SimpleBlobDetector
cv2.SimpleBlobDetector
: erkennt Keypoints, die Blobs anhand von Größe, Form und Intensität repräsentieren.
Swipe to start coding
Sie erhalten die Bilder einer Fabrik (factory
) und Sonnenblumen (sunflowers
):
- Umwandlung des
factory
-Bildes in Graustufen und Speicherung in der Variablegray_factory
; - Umwandlung des
sunflowers
-Bildes in Graustufen und Speicherung in der Variablegray_sunflowers
; - Für den Harris-Detektor ist es notwendig, die Bildmatrix in
float32
umzuwandeln; führen Sie dies durch und speichern Sie das Ergebnis ingray_float
; - Wenden Sie die Harris-Eckendetektion an und speichern Sie das Ergebnis in
harris_corners
(empfohlene Parameter:blockSize=2, ksize=3, k=0.04
); - Verwenden Sie
dilate()
, um die Sichtbarkeit derharris_corners
zu verbessern; - Wenden Sie die Shi-Tomasi-Eckendetektion auf das Bild an und speichern Sie das Ergebnis in
shi_tomasi_corners
(empfohlene Parameter:gray_factory, maxCorners=100, qualityLevel=0.01, minDistance=10
) - Erstellen Sie ein
SimpleBlobDetector_Params
-Objekt zur Initialisierung der Parameter und speichern Sie es inparams
; - Erstellen Sie einen Blob-Detektor mit den angegebenen Parametern und speichern Sie ihn in
detector
; - Erkennen Sie Blob-Keypoints und speichern Sie diese in
keypoints
.
Lösung
Danke für Ihr Feedback!