Laden...

Colors vergleichen

Erstellt von Sylla vor 14 Jahren Letzter Beitrag vor 14 Jahren 2.411 Views
S
Sylla Themenstarter:in
11 Beiträge seit 2008
vor 14 Jahren
Colors vergleichen

Hallo, ich möchte schauen ob 2 colors annähernd gleich sind und hab dazu die funktion

private bool CompareColors(Color col1, Color col2, int epsilon)
        {
            if (Math.Abs(col1.R - col2.R) < epsilon && Math.Abs(col1.G - col2.G) < epsilon && Math.Abs(col1.B - col2.B) < epsilon)
            {
                return true;
            }
            return false;
        }

Da ich die Funktion ziemlich oft aufrufe, wollt ich fragen, wie ich die optimieren kann?

Edit: Falls jemand sogar einen Vorschlag hat wie ich Bilder vergleichen kann ohne dabei jeden Pixel durchzugehen soll's mir auch recht sein 😁

J
237 Beiträge seit 2008
vor 14 Jahren

So ist's ein wenig schöner:


private bool CompareColors(Color col1, Color col2, int epsilon) {
    return Math.Abs(col1.R - col2.R) < epsilon &&
              Math.Abs(col1.G - col2.G) < epsilon &&
              Math.Abs(col1.B - col2.B) < epsilon;
}

Von der Geschwindigkeit ist da wohl wenig rauszuholen.

Grüße, JasonDelife.

Beim Programmieren löst man die Probleme, die man nicht hätte, programmierte man nicht.

6.911 Beiträge seit 2009
vor 14 Jahren

Hallo,

ich würde nicht im RGB-Farbraum vergleichen. Für eine Erklärung warum siehe Farben vergleichen (hätte die Foren-Suche auch liefern können).

Weiters würde ich die Minkowski-Metrik der 1. Ordnung (Manhattan) nicht im Raum verwenden. Die euklidische Metrik (2. Ordnung) ist aufgrund der Isotropie besser geeignet.

Falls jemand sogar einen Vorschlag hat wie ich Bilder vergleichen kann ohne dabei jeden Pixel durchzugehen soll's mir auch recht sein

Diese Frage wurde auch schön des öfteren gestellt. Benutze bitte die Forensuche dafür. Diese liefert ausrechend Treffer und Informationen/Ansätze um das zu Lösen.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

S
Sylla Themenstarter:in
11 Beiträge seit 2008
vor 14 Jahren

Bis ich die konvertiert habe und dann prüfe, prüfe ich sie wahrscheinlich schneller direkt

6.911 Beiträge seit 2009
vor 14 Jahren

Bis ich die konvertiert habe und dann prüfe, prüfe ich sie wahrscheinlich schneller direkt

Was meinst du damit? V.a. mit dem Prüfen... 🤔

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"