FB_VN_GeneralizedHoughBallard

This FB provides the Generalized Hough Ballard functionality. First, set the parameters via the corresponding methods (optional, defaults are used otherwise). Then, set the template (required). Afterwards, the Detect method can be executed.

Do not call the main FB directly. Only use the available methods.

FB_VN_GeneralizedHoughBallard 1: Methods

Name

Description

Detect

Detect the template in an image (SetTemplate must have been called before).

SetCannyThreshold

Sets the canny edge detection thresholds.

SetInvAccuRatio

Sets the inverted ratio of the accumulator size in relation to the source image's size (e.g. a value of 2 means that the size is halved in both directions.)

SetLevels

Sets the number of R-table levels.

SetMinDist

Sets the minimum distance between the centers of different objects.

SetTemplate

Sets the template image to search for in the Detect method.

SetVotesThreshold

Sets the accumulator threshold, i.e. the number of votes required to detect a match (too small values lead to false detections).

Weiterführende Informationen

Der Funktionsblock FB_VN_GeneralizedHoughBallard findet eine beliebige Form in einem Graustufenbild mit Hilfe der verallgemeinerten Hough-Transformation. Ermittelt werden die Mittelpunktpositionen der erkannten Template-Formen, wobei unterschiedliche Skalierung und Rotation vom Template nicht berücksichtigt werden.

Parameter

Eingangsbilder

Das Template- und Eingangsbild muss ein 1-kanaliges Bild mit Element-Typ USINT (8 Bit) sein. Zuerst muss das Template-Bild mit der Methode SetTemplate übergeben werden. Danach kann die Ausführung mit Aufruf der Detect Methode erfolgen, wo dann das Eingangsbild übergeben wird.

Parameter zur Detektion

Folgende Parameter können per Methodenaufruf gesetzt werden. Ansonsten werden diese Default-Werte verwendet. Da die Parameter bereits für interne Berechnungen bei der Übergabe des Template-Bilds verwendet werden, müssen die Werte immer zuerst gesetzt werden.

CannyThresholdLow = 50

CannyThresholdHigh = 100

InvAccuRatio = 1.0

Levels = 360

MinDist = 1.0

VotesThreshold = 100

Liste der gefundenen Mittelpunkte (Rückgabewert)

Alle im Bild gefunden Mittelpunktpositionen werden nach dem Aufruf der Detect Methode in dem Container ipPositions zurückgegeben.

Anwendung

Die Ausführung besteht aus 3 Schritten. Zuerst werden die Parameter gesetzt und dann das Template-Bild übergeben. Danach reicht es aus, nur noch die Detect Methode mit den Bildern aufzurufen, auf denen nach dem Template gesucht werden soll. Erst wenn Parameter oder das Template geändert werden sollen, müssen die entsprechenden Schritte erneut ausgeführt werden.

// Set parameters first
hr := fbGenHoughBallard.SetCannyThreshold(50,150);
IF SUCCEEDED(hr) THEN hr := fbGenHoughBallard.SetInvAccuRatio(2); END_IF
IF SUCCEEDED(hr) THEN hr := fbGenHoughBallard.SetLevels(180); END_IF
IF SUCCEEDED(hr) THEN hr := fbGenHoughBallard.SetMinDist(20); END_IF
IF SUCCEEDED(hr) THEN hr := fbGenHoughBallard.SetVotesThreshold(80); END_IF

// Check if successful and set template image
IF SUCCEEDED(hr) THEN hr := fbGenHoughBallard.SetTemplate(ipTemplateImage); END_IF

// Check if successful and call detection
IF SUCCEEDED(hr) THEN hr := fbGenHoughBallard.Detect(ipSrcImage,ipPositions); END_IF

Required License

TC3 Vision Matching

System Requirements

Development environment

Target platform

PLC libraries to include

TwinCAT V3.1. 4024.44 or later

PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU

Tc3_Vision