Redukcja poziomów szarości

Redukcja poziomów szarości jest banalnie prosta dla wszelkich obrazów i ma złożoność w * h. Otóż bierzemy sobie
piksele z obrazka i….

// pixele to jedna dluga tablica wszystkich pikseli z obrazka
for (int i = 0; i < (w * h); i++) {
    tmp = ((pixele[i] >> 16) & 0xff) +
          ((pixele[i] >> 8) & 0xff) +
          (pixele[i] & 0xff))/3;
    tmp = ((int) (tmp / (256 / skala))) *
          (255 / (skala - 1));
    pixele[i] = (((255 & 0xff) << 24) |
                (((int) tmp & 0xff) << 16) |
                (((int) tmp & 0xff) << 8) |
                ((int) tmp & 0xff));
}

Zmienna skala może być równa od 2 do 256. Oczywiście najlepsze rezultaty otrzymamy jeśli wybierzemy 2, 4, 8, 16, 32, 64, 128 lub nawet 256. Wybranie 2 spowoduje że otrzymamy zbinaryzowany obrazek, zaś gdy wybierzemy 2 to z obrazka kolorowego powstanie obrazek w skali szarości. Proste, no nie?

A oto przykłady:

Twitter, o co chodzi?

Żeby zrozumieć o co chodzi w Twitterze wystarczy się zapisać, zaprosić paru znajomych i dać się wkręcić. Jednak już dawno temu Polacy skumali o co tam chodzi i opisali to na swoich blogach, np tutaj. Post może z lekka stary ale jary. Można tam poczytać o co w tym całym Twitterze chodzi. Pozdro

A poniżej obrazek z angielskiego bloga. Twitter = Next Generation Blog 🙂

Next gen. blog

Zamierzam z tego korzystać, w szczególności, że ceny smartfonów idą w dół i chyba wkrótce sobie jakiegoś sprawię.

P.S. Poprawiłem linka.

Twitter?

Przeglądając strony zza oceanu wyraźnie widać, że popularność zdobywa nowa stronka: twitter.com. Niby cośtam ala facebook, myface, niby coś tam nowego. Pewnie nie warto sprawdzać. Ale gdy czytam kolejne posty a między innymi to, że Google może w tym tygodniu kupić stronę za $2m, to zastanawiam się, czy czasem tego nie sprawdzić.

Oczywiście strona jest po angielsku i po jakiemuś jeszcze (japoński może?), więc szybko nie zyska w Polsce popularności. Z drugiej strony dużo opcji tam nie ma. Po prostu wpisujesz co akurat robisz. Nic więcej.

Trzeba po prostu się zapisać i sprawdzić. To nic nie kosztuje.

Logo Twitter\'a

Segmentacja wododziałowa

Chyba czas zacząć pokazywać jakieś przykłady super fajnej segmentacji wododziałowej. Na początek przykładowe logo:

obraz źródłowy

To samo już po segmentacji i pokolorowaniu każdego obszaru spływu na (prawie) inny kolor:

po segmentacji i kolorowaniu

Kolejny obrazek przedstawia zbinaryzowaną wersję obrazu wejściowego:

binarny obraz

Możemy zobaczyć jak wyglądają tamy po takiej segmentacji:

tamy

A na koniec połączenie tam i obrazu wejściowego. Docelowo tamy powinny być np. koloru czerwonego, aby łatwiej odróżniały się od krawędzi figur:

nałożenie tam na obraz wejściowy

Eh wszystko ładnie pięknie. Brakuje tylko tych prostokącików w środku. Ich mój algorytm po prostu nie wykrył. Dla porównania algorytm Cannego dla wykrywania linii (Canny’s Edge Detector) z domyślnymi wartościami (128, 15):

przykładowy obraz po zastosowaniu algorytmu Cannego

A Canny wykrył mniejsze prostokąciki…niestety.

Czas zmian, czas na wordpress

Długo nie updatowałem stronki… po prostu nie miałem czasu. Brak czasu spowodował też że nie będę rozwijał mojego 'oryginalnego’ UI i API. Zamiast tego skorzystam z gotowego, wykorzystywanego na całym świecie WordPress’a. A co tam?! Jak inni mogą to i ja…

Swoją drogą mam nadzieje, że teraz będę mógł zapisać więcej informacji w krótszym czasie. Co za tym idzie stronka będzie na bieżąco, a nie jak kiedyś raz na miesiąc 20 postów 🙂

Pozdro dla wszystkich, którzy to czytają oraz dla Prosiaka, bo ma dzisiaj swoje 25te urodziny.

Wordpress górą!