To co widzicie na rysunku to czerwony balon sciana jest zielona to czarne to cień, a to niby brązowe to szafka.
Ogólnie to chcialbym wlasnie rozróżnić poszczególne piksele: Powiedzmy ze mam taki algorytm.
zmienna kolor (trzyma w sobie r,g,b)
to samo zmienna kolorA= (0,0,0)
for y = 0 do wysokosc obrazka rob
for x = 0 do szerokosc obrazka rob
kolor = piksel[x,y];
jezeli kolorA != kolor wtedy kolorA = kolor
piksel[x,y] = kolorA
---no powiedzmy ze to porpawnie dziala (ale tak nie jest) ogolnie to idea algorytmu jest taka, ze jak znajdzie rozniacy sie kolor ktorego jeszcze nie ma w bazie kolorow (tablcy) to go dodaje i szuka dalej po pikselach (jak znajdzie podobny kolor do takiego co zostal juz przypisany to przypisze mu ten przypisany kolor) [ten algorytm juz mam napisany]
problem w tym, ze nie wiem za bardzo jak porównać np. czerwony kolor balonu dla mnie jako czlowieka normalne jest ze ten balon jest caly czzerwony z bialym wzorkiem), ale komputer jak do tąd znajduje mi na tym balonie troche za duzo kolorów tak o 3-4 lub wiecej za duzo
porownoje te kolory takimi funkcjami
int __fastcall TRCcolor(Byte r,Byte g,Byte b,Byte cr,Byte cg,Byte cb)
{
return abs( (r+b+g) - (cr+cg+cb) );
}
bool __fastcall fimilar_color(Byte r,Byte g,Byte b,Byte cr,Byte cg,Byte cb, int tolerance3x)
{
if ( abs((r+b+g) - (cr+cg+cb)) > tolerance3x ) return false; else return true;
}
ten funkcje chce wyrzucic bo wiem ze nie dzialaja
próbowałem też zrobić coś na zasadzie ze kolor definiujemy przez 2 zmienne) kolor = { X , Y }
X = R / (R + G + B);
Y = G / (R + G + B);
z czasem zamieniłem to na jedną zmienną kolor = R / G / B
No ale nic mi z tego konkretnego nie wyszlo. chociaz zawsze moglem cos przeoczyć
idea jest taka mamy kolor odpowiednio RGB - 160, 50, 0 (brazowo-sraczkowaty), kolorem podobnym bedzie 80, 25, 0 no i to juz jest ciemniejszy brąz ale jest to też brąz a nie pomarancz czy zielony
A oto i obrazek: (ten po prawej ma byc juz po przefiltrowaniu)
http://img408.imageshack.us/my.php?image=baloonpv8.jpg
obraz z kamerki USB, moglem odfiltorwać szzum, zeby kolory byly bardziej wyraziste, ale i tak nie odwzoruje to mojego oka...
Moje pytanie brzmi jak ja mam porównywać kolory i przypisywać je do już dodanych w tablicy? :s