Farbe im Bild suchen (:find_color)
Deklaration
x, y = bild:find_color({
[find_all = Mehrere_Ergebnisse_suchen,]
[max_results = Maximale_Ergebnisanzahl,]
[max_miss = Maximal_erlaubte_Nichttreffer,]
[find_order = Farbsuchreihenfolge,]
[csim_algorithm = Farbähnlichkeitsalgorithmus,]
{X_Startpunkt, Y_Startpunkt, Startpunktfarbe[, Startpunktähnlichkeit]},
{X_Versatzpunkt*, Y_Versatzpunkt*, Versatzpunktfarbe*[, Versatzpunktähnlichkeit*]},
{X_Versatzpunkt*, Y_Versatzpunkt*, Versatzpunktfarbe*[, Versatzpunktähnlichkeit*]},
...
} [, Globale_Ähnlichkeit, links, oben, rechts, unten])
Parameter
-
Mehrere Ergebnisse suchen
Boolescher Wert; optional. Bei true wird eine Tabelle mit allen passenden Positionen im Bereich im Format {{x1, y1}, {x2, y2}, ...} zurückgegeben, standardmäßig false -
Maximale Ergebnisanzahl
Ganzzahl; optional. Wenn find_all (Mehrere Ergebnisse suchen) auf true gesetzt ist, gibt dies die maximale Anzahl der Ergebnisse an; höchstens 1000, standardmäßig 100 -
Maximal erlaubte Nichttreffer
Ganzzahl; optional. Gibt die maximal zulässige Anzahl nicht übereinstimmender Punkte an, standardmäßig 0, sodass nur ein vollständiger Treffer gefunden wird -
Farbsuchreihenfolge
Ganzzahl; optional. Gibt die Suchreihenfolge an, Bereich 1~8, standardmäßig 1Werte der Farbsuchreihenfolge
1 oben, unten, links, rechts
2 links, rechts, oben, unten
3 rechts, links, oben, unten
4 oben, unten, rechts, links
5 unten, oben, rechts, links
6 rechts, links, unten, oben
7 links, rechts, unten, oben
8 unten, oben, links, rechtsDie Bildschirm-Farbsuchfunktion screen.find_color besitzt dieses Feld nicht.
Demonstration der Farbsuchreihenfolge -
Farbähnlichkeitsalgorithmus (unterstützt ab Version 20250302)
Ganzzahl; optional, Farbähnlichkeitsalgorithmus, standardmäßig 0Farbähnlichkeitsalgorithmus
0 ist der XXT-Standardalgorithmus: steiler Gradient, die Ähnlichkeit sinkt bei Abweichungen schnell.
1 ist der Manhattan-Algorithmus mit sanftem Gradient.
2 ist der euklidische Algorithmus mit sanftem Gradient. -
X-Startpunkt, Y-Startpunkt
Ganzzahlen; Ausgangskoordinaten. Dies schränkt die Farbsuche nicht auf diesen Punkt ein, sondern liefert nur die relativen Koordinaten für Versatzpunkte. Wenn kein Versatz benötigt wird, 0, 0 angeben -
Startpunktfarbe
Ganzzahl; Farbe des zu suchenden Punkts -
Startpunktähnlichkeit
Ganzzahl; optional, Ähnlichkeit der Farbe des zu suchenden Punkts, Bereich 1~100, standardmäßig 100 -
X-Versatzpunkt*, Y-Versatzpunkt*
Ganzzahlen; Koordinaten eines Versatzpunkts -
Versatzpunktfarbe*
Ganzzahl; Farbe, mit der die Versatzposition übereinstimmen muss -
Versatzpunktähnlichkeit*
Ganzzahl; optional, Farbähnlichkeit an der Versatzposition, Bereich -100~100, standardmäßig 100. Eine negative Ähnlichkeit bedeutet, dass eine Ähnlichkeit unter ihrem Absolutwert gefunden wird -
Globale Ähnlichkeit
Ganzzahl; optional. Wenn für einen einzelnen Punkt keine Ähnlichkeit festgelegt ist, wird diese für jeden Punkt verwendet, Bereich 1~100, standardmäßig 100 -
Links, oben, rechts, unten
Ganzzahlen; optional, Suchbereich, standardmäßig das gesamte Bild
Rückgabewert
- X- und Y-Koordinate
Ganzzahlen; Koordinaten der ersten passenden Farbe, bei fehlgeschlagener Suche -1, -1
Beschreibung
Sucht im Ähnlichkeitsmodus die Position der ersten vollständig passenden Mehrpunkt-Farbstruktur im Bereich.
Informationen zur Verwendung des Farbabweichungsmodus findest du unter Farbsuche im Mehrpunkt-Farbabweichungsmodus (screen.find_color).
Beispiel
bild = screen.image()
x, y = bild:find_color({
{ 0, 0, 0xec1c23},
{ 12, -3, 0xffffff, 85},
{ 5, -18, 0x00adee},
{ -1, -10, 0xffc823},
{ 2, -34, 0xa78217},
{ 12, -55, 0xd0d2d2},
}, 90, 0, 0, 100, 100)
--
--[[
Im Bereich von 0, 0 (oben links) bis 100, 100 (unten rechts) den ersten Punkt finden, dessen Ähnlichkeit zu 0xec1c23 größer als 90 ist,
dessen Farbe an den relativen Koordinaten (12, -3) eine Ähnlichkeit zu 0xffffff von mehr als 85 hat,
dessen Farbe an den relativen Koordinaten (5, -18) eine Ähnlichkeit zu 0x00adee von mehr als 90 hat
und bei dem auch alle folgenden Bedingungen (entsprechend) erfüllt sind.
--]]
--
-- Äquivalenter Code:
--
x, y = bild:find_color({
{ 509, 488, 0xec1c23},
{ 521, 485, 0xffffff, 85},
{ 514, 470, 0x00adee},
{ 508, 478, 0xffc823},
{ 511, 454, 0xa78217},
{ 521, 433, 0xd0d2d2},
}, 90, 0, 0, 100, 100)
--
--[[
Im Bereich von 0, 0 (oben links) bis 100, 100 (unten rechts) den ersten Punkt finden, dessen Ähnlichkeit zu 0xec1c23 größer als 90 ist,
dessen Farbe an den relativen Koordinaten (521-509, 485-488) eine Ähnlichkeit zu 0xffffff von mehr als 85 hat,
dessen Farbe an den relativen Koordinaten (514-509, 470-488) eine Ähnlichkeit zu 0x00adee von mehr als 90 hat
und bei dem auch alle folgenden Bedingungen (entsprechend) erfüllt sind.
--]]