Hogyan oldanál meg egy ilyen programozási feladatot?
Adott egy színes kép és azt kellene újraalkotni mindössze húsz szín segítségével.
Arra gondoltam, hogy végigmennék minden pixelen, megnézném, hogy milyen az eredeti képen a színe, ehhez kiválasztanám a húsz közül legjobban illőt, aztán pixelenként kirajzolnám a képet újra.
Azzal a résszel viszont, hogy adott színhez hozzáillő színt találjak a 20 közül, nem tudok boldogulni.
Pl. ezt a képet szeretném újrarajzolni: [link] és van hozzá pirosom, narancsom, citromsárgám, feketem, fehérem.
Itt a pirosnak rengeteg árnyalata van, sok helyen megy át narancssárgába, ami utána citromsárgába. A szemnek egyszerű ezt észrevenni, de algoritmus erre?
Ha 20 színed van, elég gagyi kép lesz utána, szóval jóra ne számíts...
Ugye egy szín piorsból, zöldből és kékbőláll össze.
Te ennek ismeretében el tudod dönteni, hogy a szín melyikhez illene a legjobban.
A leírásból azt veszem ki, hogy fix, melyik 20 színből dolgozhatsz. Ezesetben egyszerű a dolgod. Hozz létre egy metrikát (távolságfüggvényt), amivel két szín távolságát tudod mérni. Megméred az adott pixelhez melyik van a legközelebb a 20 színből, és azt választod ki hozzá. Ilyen metrika lehet például az rgb kódok additív távolsága, tehát összeadod, hogy mennyivel különbözik (abszolút értékben) a piros, a zöld és a kék összetevő, és ez lesz a távolság. Ezt csinálhatod négyzetesen is, súlyozhatod, akármi, ahogy jó lesz. Az a lényeg, hogy írd meg az algoritmust így, és utána játszhatsz a súlyfüggvénnyel.
Ha nincsenek meg a fix 20 színek akkor írj.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!