[PYTHON] cv2.Canny (): Macht die Anpassung der Kantenerkennung mit der Canny-Methode angenehm

Kante bezieht sich auf die Grenze zwischen Objekten und Hintergrund, und Kantenerkennung bezieht sich im Allgemeinen auf Bildverarbeitung, die Kanten erkennt, indem Änderungen der Pixelwerte im Bild und in Bereichen mit einem großen Helligkeitsgradienten erkannt werden.

スクリーンショット 2020-02-09 3.24.50.png (Das Bild stammt von [Free Image Site](https://www.pakutaso.com/20191228360post-24995.html))

Was ist cv2.Canny ()?

Kantenerkennungsfunktion implementiert und bereitgestellt von opencv. Kantenbilder können einfach erstellt werden, aber zwei Parameter müssen (hauptsächlich) für die ordnungsgemäße Verwendung angepasst werden.

Offizielle Seite: Dokumentチュートリアル

Zielperson

Ich habe versucht, "cv2.Canny ()" zu verwenden, während ich den Schwellenwert irgendwie angepasst habe, aber es hat nicht wie erwartet funktioniert. Ich weiß nicht, ob das Bild eingeschränkt oder schlecht eingestellt ist. Lassen Sie uns die Bedeutung der Parameter richtig verstehen.

Zwei Einstellparameter

cv2.Canny(gray_img, threshold1, threshold2)

Einfach gesagt, stellen sowohl "Schwelle1" als auch "Schwelle2" den Schwellenwert dar, um zu bestimmen, ob eine Kante vorhanden ist. ** Je größer der Wert ist, desto schwieriger ist es, die Kante zu erkennen, und je kleiner der Wert ist, desto einfacher ist es, die Kante zu erkennen. ** **. (Wenn der Schwellenwert groß ist, wird er nur dann als Kante beurteilt, wenn sich die Helligkeit größer ändert.)

import cv2
gray_img = cv2.imread('sample.jpg', cv2.IMREAD_GRAYSCALE)

threshold1 = 0
threshold2 = 360
edge_img = cv2.Canny(gray_img, threshold1, threshold2)
cv2.imwrite('sample_edge.jpg', edge_img)

threshold2: maxVal Schwelle2 ist der intuitivere Wert, ** die Schwelle selbst, um zu bestimmen, ob es sich um eine Kante handelt **.

Wenn Sie den Schwellenwert 2 tatsächlich schrittweise senken, ist dies wie folgt. (Zum leichteren Verständnis hat Schwelle1 den gleichen Wert wie Schwelle2.)

threshold2.gif

threshold1: minVal Als Voraussetzung für die Erklärung des Arguments betrachtet die Canny-Methode die Kante als lange Linie, und ** der Teil neben der Kante ist tendenziell eine Kante **. (Siehe Abbildung unten)

スクリーンショット 2020-02-09 3.42.44.png

Aus dieser Idee heraus haben wir einen zweiten Schwellenwert (Schwellenwert1) eingeführt, und in einfachen Worten lautet die Rolle "** Ein loser Schwellenwert für die Beurteilung, ob es sich um eine Kante in dem Teil handelt, der an eine andere Kante angrenzt (der Teil, der dazu neigt, eine Kante zu werden) * * ".

Mit anderen Worten, selbst wenn Sie versuchen, Schwellenwert 1 zu lockern (kleiner), werden Kanten an Stellen nicht erkannt, an denen ursprünglich nichts erkannt wurde.

Durch das Lösen wird der benachbarte Teil der Kante, der ursprünglich von Schwelle2 erfasst wurde, tendenziell zu einer Kante, dh intuitiv fühlt es sich an, als würde ** die Linie der Kante, die ursprünglich von Schwelle2 erfasst wurde **, verlängert. ..

Wenn Sie den Schwellenwert 1 tatsächlich schrittweise verringern, ist dies wie folgt.

threshold1.gif

Zusammenfassung

cv2.Canny(gray_img, threshold1, threshold2)

--schwelle 1: Lose Schwelle für die Beurteilung, ob es sich um eine Kante in einem Teil neben einer anderen Kante handelt (ein Teil, der dazu neigt, eine Kante zu sein) --threshold2: Schwelle selbst, um zu beurteilen, ob es sich um eine Kante handelt

Nehmen Sie die Einstellungen der Kantenerkennungsparameter gut vor

Aus dem oben Gesagten wird die oben erläuterte Reihenfolge empfohlen.

  1. Stellen Sie threhsold1 auf den gleichen Wert wie schwelle2 ein.
  2. Stellen Sie den Schwellenwert2 so ein, dass die Kante dort angezeigt wird, wo sie erkannt werden soll.
  3. Verwenden Sie Schwelle1, um Kanten zu vergrößern.

Recommended Posts

cv2.Canny (): Macht die Anpassung der Kantenerkennung mit der Canny-Methode angenehm
Die Kopiermethode von pandas.DataFrame ist standardmäßig Deep Copy
Kantenerkennung (Laplace, Sobel, Canny)
[Erkennung von Anomalien] Versuchen Sie es mit der neuesten Methode des Fernunterrichts
Finden Sie das Verhältnis der Fläche des Biwa-Sees nach der Monte-Carlo-Methode