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 😁
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.
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!"
Bis ich die konvertiert habe und dann prüfe, prüfe ich sie wahrscheinlich schneller direkt
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!"