Osaisko joku neuvoa miten C-kielessä sais parhaiten/helpoiten tehtyä algoritmin joka kaventaisi P5 formatin harmaa asteikkoa kuvissa 0-255:stä 235-255:teen?Eli ongelmana lähinnä miten tuota alarajaa voi muttaa?
Kiitos etukäteen!
Tässä on yleinen muunnosfunktio sekä siitä juuri mainitsemillesi lukuväleille tehty versio. Ylärajaksi pitää laittaa yhtä ylempi kuin suurin arvo, jotta jakaumasta tulisi tasainen:
123456789 # 1 - 9, alkuperäinen 111122223 # 1 - 3, huono tulos, kun vain viimeinen on 3 111222333 # 1 - 3, hyvä tulos, kun kaikkia tulee yhtä paljon
int yleispateva(int ala_0, int yla_0, int x, int ala_1, int yla_1) { return ala_1 + (x - ala_0) * (yla_1 - ala_1) / (yla_0 - ala_0); } int optimoitu(int x) { // yleispateva(0, 255 + 1, x, 235, 255 + 1) // yleispateva(0, 256, x, 235, 256) // 235 + (x - 0) * (256 - 235) / (256 - 0) // 235 + x * (256 - 235) / 256 // 235 + x * 21 / 256 // Kääntäjä osaisi tosin tehdä samat optimoinnit, // kunhan asetuksiin on laitettu, että optimoidaan. return 235 + x * 21 / 256; }
Tiedoston formaatista en tiedä, toivottavasti itse tiedät. :)
Nonii,pääsin kokeileemaan ja homma pelaa nytten:) Kiitoksia sulle.Arvasin että täällä on ehkä ihmisiä jotka on paremmin perillä kuin minä:)
Aihe on jo aika vanha, joten et voi enää vastata siihen.