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.
Methods
Name |
Description |
---|---|
Detect the template in an image (SetTemplate must have been called before). | |
Sets the canny edge detection thresholds. | |
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.) | |
Sets the number of R-table levels. | |
Sets the minimum distance between the centers of different objects. | |
Sets the template image to search for in the Detect method. | |
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.59 or later | PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU | Tc3_Vision |