Projektowanie stron WWW od podszewki

Artykuły na każdy temat

[C#] Aplikacja służąca do detekcji kolorów

Dodano 11.11.2011r. o 18:54
Bazując na kodzie Philippa Pearce służącym do przechwytywania obrazu z kamery stworzyłem małą aplikację do detekcji podstawowych 16 kolorów. Podobno niemożliwe, a jednak możliwe, prawda Moniczko? Oczywiście można rozszerzyć ilość kolorów do większej palety jednak ja wołałem zostać przy podstawowej palecie. Ponadto możliwe, że w przyszłości uzupełnię program o opcje ładowania grafiki z określonej lokalizacji. Program jest na tyle intuicyjny, że myślę, że nie trzeba nic tłumaczyć. Gdy klikniemy w przycisk detekcji to wywali nam Alert, czyli po języku programistów aplikacji tzw. MessageBox.

Kluczową sprawą jest oświetlenie. Jeżeli będzie nieprawidłowe to uzyskamy niewłaściwy wynik, co nie powinno nas dziwić. Zwróćcie uwagę na fotografię poniżej:
detect-color-real.jpg
W rzeczywistości moje ściany są krwistoczerwone. Po zbiciu do palety podstawowych webowych kolorów uzyskujemy coś takiego:
detect-color-worked.jpg
I w wyniku przeliczenia program powie nam, że dominującym kolorem jest kolor żółty. Tzw. żarówki energooszczędne są marnym źródłem światła.

Ważnym aspektem dobrej detekcji koloru jest oświetlenie oraz umiejscowienie przedmiotu, którego kolor chcemy badać. Najlepiej, aby obiekt zakrywał cały przechwytywany obraz. Jeżeli mamy kamerę, która automatycznie odpowiednio przybliża i oddala obraz to mamy ułatwioną sprawę.

Jeżeli będę miał trochę czasu to może napiszę taką aplikację na telefon, bo poszła sugestia, aby taka powstała. Jak widzicie małym kosztem można uzyskać cel. Nie trzeba koniecznie kupować specjalnego osprzętowania służącego do detekcji kolorów.

Ah i bym zapomniał link do aplikacji detekcja-koloru.rar Smile Dla jasności powiem tylko tyle, że została ona napisana w C# i wymaga .NET Framework 2.0. Używacie jej na własną odpowiedzialność!

Komentarze

Publikowane komentarze są prywatnymi opiniami użytkowników serwisu. Serwis nie ponosi odpowiedzialności za treść opinii. W trosce o zachowanie poziomu dyskusji wszystkie komentarze podlegają akceptacji przed ich publikacją dlatego proszę cierpliwie czekać aż komentarz zostanie opublikowany.

CapaciousCore

Dodano 26.09.2015r. o 15:29
@Rebel Witaj. Nie wiem co oznacza dla Ciebie słowo pracochłonne lecz przy obecnych mocach obliczeniowych komputerów nawet domowych nie powinno stanowić problemu robienie tego w czasie rzeczywistym przy pomocy kamery. W związku z tym można stworzyć robota, który będzie układał kostkę Rubika. Z tego co pamiętam to istnieją już takie projekty. Odnośnie problematyki to proponuje poszukać na CodeProject projektów pokazujących jak wykrywać twarz. Skoro twarz można wykryć to i kostkę Rubika po uprzednich modyfikacjach.

Rebel

Dodano 16.09.2015r. o 09:52
Siemka, mam do wykonania projekt w ktorym musze rozpoznać kolory z kostki rubika. Skoro nie możesz udostępnić kodu mógłbyś mi wyjaśnić jak to zrobiles, albo cos doradzic?
Próbowałem porównywać dany obszar ze zdjecia do wzorca, piksel po pikselu, ale to nie zawsze sie zgadza, i jest to dosc pracochłonne

CapaciousCore

Dodano 14.01.2013r. o 12:38
@manio Nie jestem w stanie ustalić na jakiej licencji był kod Philippa Pearce stąd nie wiem czy nie mam zobowiązań wobec tego. Pytanie także do jakich celów dokładnie Ci ten kod jest potrzebny?

manio

Dodano 14.01.2013r. o 12:22
Czy istnieje możliwość udostępnienia kodu? Może bym go przerobił na swoje potrzeby. Z góry dzięki i pozdro!

CapaciousCore

Dodano 02.06.2012r. o 02:12
@zajcyn żadnego ponieważ tam po prostu zamienia ilość bitów w bitmapie na 16 podstawowych kolorów i zlicza piksele pojedynczo.

zajcyn

Dodano 02.06.2012r. o 00:58
hej, chcialam spytac jakiego algorytmu uzyles do detekcji kolorow?

Dodaj komentarz

Zostaw komentarz jeżeli możesz! Nie bądź przysłowiowym botem! Nie bądź obojętny! Ciebie to nic nie kosztuje, a mi sprawi uśmiech na twarzy.
Zezwolono używać: BBCode
Zabroniono używać:
znaczników HTML

(Wymagany)

(Wymagany, niepublikowany)

(Nie wymagana)

Token:

Obrazek dla bota

(Przepisz tylko cyfry!)

(Wymagana)