Halcon-Detaillierte Erklärung des Kantenerkennungsoperators

Erstens die Einführung des Bedieners

1.1 Zu den
häufig verwendeten Kantenerkennungsoperatoren in
Halcon gehören: 1. Kantenbild: Extrahieren von 2D-
Bildkanten 2. Kanten_Pix: Extrahieren von 2D-Bild-Subpixelkanten
3. Kanten_Objektmodell_3d: Extrahieren von 3D-
Bildkanten 4. Kanten_Farbe und Kanten_Farbe_Pix: Extrahieren von Farbbildern Kante
1.2 Unterscheidung
Kanten_Bild extrahiert selektiv eine Vielzahl von Kantenerkennungsalgorithmus-Objektkanten, die sich vom Subpixel-Kantenoperator unterscheiden, dass Kanten_Bild-Kantenmerkmalsextraktion eine Pixeleinheit ist, Kanten_Sub_Pix kleiner als eine Pixeleinheit für die extrahierte Kante ist. Im Allgemeinen Momentmethode, Interpolationsmethode und Anpassungsmethode werden verwendet.

Zweitens detaillierte Erklärung

2.1 Kantenbild (Bild: ImaAmp, ImaDir: Filter, Alpha, NMS, Niedrig, Hoch :)

Die Hauptparameter in diesem Operator sind:
ImaDir (die Kantenrichtung des Bildes, sie ist für den sobel_fast-Algorithmus unbrauchbar, da sie die Richtungsinformationen nicht berechnet)
Filter (der Kantenoperator, einschließlich'canny ',' deriche1 ',' deriche1_int4 ',' deriche2 ',' deriche2_int4 ',' lanser1 ',' lanser2 ',' mshen ',' shen ',' sobel_fast ')
Alpha (Filterparameter, kleiner Wert führt zu starker Glättung, aber weniger Detail (das Gegenteil von Canny Operator))
NMS (Nicht maximale Unterdrückung (auf keine gesetzt, was darauf hinweist, dass dieser Wert nicht benötigt wird))
Niedrig (unterer Schwellenwert für den Betrieb der Hystereseschwelle (wenn keine Schwellenwerteinstellung erforderlich ist, dann negativ))
Hoch (oberer Schwellenwert für die Hysterese Schwellenwertbetrieb (falls nicht erforderlich) Schwellenwerteinstellung ist negativ))
2.2 Kantenerkennungsalgorithmus
Für Algorithmen ist der Canny-Operator derzeit die stabilste Kantenerkennungsmethode.
Der Canny-Algorithmus besteht aus drei Stufen: Kantenstärke, Kantenverfeinerung (NMS) und Hystereseschwelle.
Zunächst wird bei der Berechnung der Kantenstärke der Bildgradient berechnet: Gradientengrößenmatrix, Gradientenrichtungsmatrix:
1) Bildgraustufen
2) Gauß-Filter
3) Sobel-Filter, um das Gradientenbild in x- und y-Richtung zu erhalten, bezeichnet als fx, fy
4) Verwenden Sie fx und fy, um die Gradientenamplitude und die Richtung des Gradienten zu ermitteln.
5) Die Gradientenrichtung ist zu diesem Zeitpunkt ein beliebiger Wert zwischen [-90, +90] und sie werden in vier Arten von 0, 45 reguliert 90, 135 Grad.
Berechnen Sie dann die nicht-maximale Unterdrückung (NMS), klassifizieren Sie zuerst nach den in der regulierten Richtungsmatrix gespeicherten Richtungen und vergleichen dann drei Pixel in derselben Richtung, um sicherzustellen, dass der Wert des mittleren Pixels der größte ist, andernfalls wird auf Null gesetzt und schließlich wird die gereinigte Gradientenamplitudenmatrix erhalten.
Verarbeiten Sie abschließend die Gradientenamplitudenmatrix weiter und teilen Sie das Bild gemäß dem eingestellten hohen und niedrigen Schwellenwert in drei Teile:
1. Pixel mit einer Gradientenamplitude größer als hoch setzen Sie den Wert auf 255;
2. Pixel
Wenn die Gradientenamplitude kleiner als niedrig ist, wird der Wert auf 0 gesetzt. 3. In der Mitte der Gradientengröße eines Pixels mit seinen acht Nachbarn wird bestimmt, wenn die Nachbarschaft größer als hoch ist, wird das Pixel auf die Zwischenstufe 255 gesetzt Als
nächstes bezieht sich auf
die folgenden verbindlichen Verfahren Demonstration und Erklärung jedes Filteralgorithmus:

read_image (I, 'C:/Users/Administrator/Desktop/a.png')
dev_close_window ()
dev_open_window(0, 0, 512, 512, 'black', WindowHandle)
get_image_size (I, Width, Height)
dev_set_window_extents (0, 0, Width, Height)
rgb1_to_gray(I, GrayImage)
*dev_set_lut ('change2')
*设置滞后阈值为默认值
*滤波参数值Alpha
*设置滞后阈值必须大于0,小于255,值越小细节越多,但同时会带来很多不需要的边缘信息。
*值越大则会丢失边缘,很多边缘点值都会被设置为0。
edges_image(GrayImage, ImaAmp, ImaDir, 'canny', 1, 'nms', 20, 40)
dev_display(ImaAmp)

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

Ich denke du magst

Origin blog.csdn.net/baidu_35536188/article/details/112351198
Empfohlen
Rangfolge