Anniversary - BF C/C++ week
80 % bodů zdarma na online výuku díky naší Narozeninové akci!
Pouze tento týden sleva až 80 % na e-learning týkající se C/C++
Avatar
František Pastorek:29.6.2019 1:35

Ahojte,

neviem si poradiť z prepisom problému do matematického tvaru. Z programového hladiska vyzera môj problém takto:

max(r,x) - min(r,x) + max(g,x) - min(g,x) + max(b,x) - min(b,x) >= 500
r - R8bit (8 bitová hodnota červenej zložky)
g - G8bit (8 bitová hodnota zelenejzložky)
b - B8bit (8 bitová hodnota modrej zložky)
x - sú tiež hodnoty r,g,b ale všetky chcem mať rovnakej hodnoty, preto len jedna neznáma
500 - výsledný rozdiel

Potrebujem nájsť čo najnižšie vyhovujúce číslo. Predpokladám, že existuje akýsi prepis tohoto zadania do matematického tvaru, z ktorého už nebude problém napísať kód. Vopred ďakujem za akúkoľvek radu.

Zkusil jsem: Skúšal som hľadať nejaké riešenia, ale pravdepodobne sa neviem správne vyjadriť.

Chci docílit: Pokúšam sa vygenerovať čo najvhodnejšiu farbu textu pre zadanú farbu pozadia. Doteraz som to robil výpočtom relatívnej svietivosti pozadia a dopočítania druhej farby pre približnú hodnotu kontrastného pomeru oboch farieb. Nie je to však také kvalitné/dobré ako počítanie farebného rozdielu. Problém je, že v tomto prípade si neviem odvodiť vzorec.

 
Odpovědět
29.6.2019 1:35
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:4.7.2019 14:26

Ja to resim pres zjisteni odstinu a pokud se odstin zmeni o 2/3, tak zmenim pozadi.
https://mlich.zam.slu.cz/js-color4.htm (zobraz si source-sode)

function colorText (color)
{
...['yuv'][0])[0]<149 ? '#FFFFFF' : '#000000'; //  0.299 * r  ,  0.587 *g  ,  0.114 * b,

Vsechny ty obdelnicky, co tam mam, tak to pouzivaji.
Vysledek odstinu pro ruzne barevne modely muzes videt na radku 'Barva Odstin'.

 
Nahoru Odpovědět
4.7.2019 14:26
Avatar
Peter Mlich
Člen
Avatar
Odpovídá na Peter Mlich
Peter Mlich:4.7.2019 14:31

Takhle, myslenka je prosta.
Prevedu obrazek (pixel) na cernobily pomoci barevneho modelu YUV.
Hodnotu jasove slozky Y porovnavam s cisle 149 (muj odhad, vyhovovalo nejlepe).

Zkus jine modely, mozna nejake novejsi, ktere davaji lepsi vysledky pro prevod barevneho na cernobily obrazek.
A navic to mas vedecky podlozene, proc to delas. Az na cislo 149 :)

 
Nahoru Odpovědět
4.7.2019 14:31
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:4.7.2019 14:40

y = max (a, b)

y >= a
y >= b
y = a + 1 nebo y = b + 1

Nevim, jak vyradit posledni podminku.

Editováno 4.7.2019 14:40
 
Nahoru Odpovědět
4.7.2019 14:40
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:4.7.2019 14:44

https://matematika.cz/funkce#…

Jeste takova hloupost :) Ale mozna to k necemu bude.
max (a, b) = a + b - min (a, b)

Editováno 4.7.2019 14:45
 
Nahoru Odpovědět
4.7.2019 14:44
Avatar
Peter Mlich
Člen
Avatar
Odpovídá na Peter Mlich
Peter Mlich:4.7.2019 14:52

(y >= a) and (y >= b) and ((y = a + 1) or (y = b + 1))
(y >= a) and (y >= b) and ((y =< a + 1) and (y =< b + 1)) ... toto je ale spatne

Matematicky, definicni obor by byl asi takto:
y = a, kdyz a>b
y = b, kdyz b>a

Ale nevim, jak by k tomu byla funkce. y v zavislosti na 'a' a na 'b'

 
Nahoru Odpovědět
4.7.2019 14:52
Avatar
Odpovídá na Peter Mlich
František Pastorek:4.7.2019 17:44

Ďakujem sa mnoho užitočných myšlienok. Vyzerá to skvelo. Ešte raz, ďakujem :)

 
Nahoru Odpovědět
4.7.2019 17:44
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.