Tato funkce je v bitmapovém editoru PaintShopPro a ať přemýšlím jak přemýšlím, nenapadá mě jak to elegantně a rychle udělat. Když má obrázek barevnou hloubku 24b (16,7 milionu barev) jak spočítat kolik kombinací RGB bylo opravdu použitých? Napadá někoho nějaký chytrý algoritmus? Mně napadlo jenom vynulované bitové pole s 16,7 miliony položek (cca 2MB paměti), což by se ale zřejmě muselo udělat jako pole s 2097152 položkami typu BYTE a pro každý bod bitmapy zapsat bit 1 na vypočítaném indexu a bitu podle té barvy a pak spočítat kolik je tam jedniček.
Pokud si dobře vzpomínám, bylo to už ve verzi 3.0, která běhala na Win3.11 s 4MB paměti a nebylo to nijak extra pomalé nebo žeby to nějak mohutně swapovalo, aby měl kam nacpat ty 2MB dat.
Fórum › Pascal
Algoritmus spočítání všech unikátních barev v bitmapě
mohl to byt klidne spojovy seznam nebo nejaky algoritmus razeni nad body a projet ruzne, nebo binarni strom s pocitanim zasahu... tak jak tak vis ze nebude vic barev nez je pixelu v obrazku
Na Codeproject je o tom tip s ukázkovým zdrojovým kódem (ale v C#) :
http://www.codeproject.com/Tips/159307/Count-Number-of-Unique-Colors-in-an-Image
To bitové pole vypadá rozumně. Obrázek se klidně může odswapovat na disk, protože se stejně bude číst lineárně (po nějakých rozumných blocích, aby to moc nezpomalovalo) a do paměti se dá to pole. 2 MB není nic strašného.
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Moje stránka.
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 20 hostů
Podobná vlákna
Generátor kontrastních barev - algoritmus — založil Joseph
Algoritmus pro výpis všech permutací pomocí rekurze — založil Mr.Nobody
Změna barev obrázku na škálu mých vlastních 300 barev — založil Radek
Algoritmus na nalezení všech cest z bodu A do bodu B — založil Martin
Zkopírování hodnot barev a nastavení barev grafu — založil oxidián
Moderátoři diskuze