Kezdőoldal » Számítástechnika » Programozás » Hogyan oldanál meg egy ilyen...

Hogyan oldanál meg egy ilyen programozási feladatot?

Figyelt kérdés

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?


2011. febr. 19. 00:23
 1/4 anonim ***** válasza:

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.

2011. febr. 19. 00:28
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:

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.

2011. febr. 19. 08:33
Hasznos számodra ez a válasz?
 3/4 A kérdező kommentje:
Második: köszönöm szépen a választ, működött minden súlyozás nélkül is. Számomra a te mostani válaszod egyike volt azoknak a kevés értelmes és használható válaszoknak amit itt az oldalon kaptam!
2011. febr. 19. 11:28
 4/4 anonim ***** válasza:
Lehet hülyeséget fogok mondani, de én úgy csinálnám, hogy csinálnék 20 db szín entervallumot. Tehát gondolom RGB-ben vannak a színek, és így csak azt kellene vizsgálni, hogy az adott szín 20,20,20 és 40, 40, 40 közé esik, akkor az az a szín amelyiket beállítod, bár ez így eléggé dinamikus megoldás:S Bár egy kicsit továbbfejlesztve, a megadott színekhez képest saját magának is meghatározhat egy intervallumot, pl a sárga színből levonsz (255/20)/2-t majd ezt hozzá is adom, így van egy intervallumom. Nem vagyok benne biztos, hogy ez a megoldás az adott szín árnyalatot adja vissza, de ha létrehozol egy egy paraméteres színskálát, és az 20 részre osztod, akkor biztosan megfelelően működne.
2011. febr. 19. 12:34
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!