Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: [C] Kuvien käsittely P5 formaatissa

C_ohjelmoija87 [28.09.2009 19:21:26]

#

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!

Metabolix [29.09.2009 01:23:42]

#

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. :)

C_ohjelmoija87 [29.09.2009 18:25:49]

#

Nonii,pääsin kokeileemaan ja homma pelaa nytten:) Kiitoksia sulle.Arvasin että täällä on ehkä ihmisiä jotka on paremmin perillä kuin minä:)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta