Moja wewnętrzna pętla zawiera obliczenia, które pokazują, że profilowanie jest problematyczne.Szybka formuła dla krzywej o wysokim kontraście
Chodzi o to, aby wziąć piksel w skali szarości x (0 < = x < = 1) i "zwiększyć jego kontrast". Kim wymagania są dość luźny, tak następujące:
- dla x < 0,5, 0 < = f (x) < x
- dla x> .5 X < f (x) = 1 <
- C (0) = 0
- f (x) = 1 - r (1 - x), to znaczy powinien być "symetryczny"
- Korzystnie funkcja powinna być gładka.
Więc wykres powinien wyglądać mniej więcej tak:
.
Mam dwie implementacje (ich wyniki różnią się, ale oba są conformant):
float cosContrastize(float i) {
return .5 - cos(x * pi)/2;
}
float mulContrastize(float i) {
if (i < .5) return i * i * 2;
i = 1 - i;
return 1 - i * i * 2;
}
Więc mogę zażądać albo microoptimization dla jednego z tych implementacji, czy oryginalny, szybsze formułę własną rękę.
Może któryś z was może nawet kręcić bity;)
Być może moglibyśmy Ci pomóc lepiej, gdybyś mógł powiedzieć nam, z jakiego języka korzystasz (zakładam Java) i jaki jest kompilator/środowisko uruchomieniowe. –
C# z kompilatorem MS i runtime, ale jestem gotów przepisać krytyczne algo w C++, jeśli uważam, że muszę ... –
C# z nazwami metod CamelCased? :( – Joren