m_zap Temat założony przez niniejszego użytkownika |
C, Allegro Magiczna różdzka » 2010-10-14 16:59:51 Panie i Panowie mam problem. Musze wykonać program który z zadanego obrazu wybierze obszar o podobnej kolorystyce. Możecie mi podsunąć jakiś pomysł na ten problem? chodzi mi o samą ideę? Jak już się go wykryje to w jaki sposób zaznaczyć obszar? I mam jeszcze pytanie w jaki sposób mam pobrać z klawiatury jakaś daną od użytkownika? Coś w stylu scanf albo coś w tym stylu?
Pracuję w C z Allegro więc spokojnie mogę jechać piksel po pikselu. Z góry dzięki za odpowiedzi. |
|
pekfos |
» 2010-10-14 17:30:35 co do drugiego to trzeba sobie samemu napisać (poszukaj "textbox"||"edit" + "allegro" ma wyszukiwarce na stronie), lub użyć allegroGUI. a podobna kolorystyka.. hmm.. można kombinować z rozbieżnościami w kolorach.. int kolor; int cell; const int ROZB = 10;
if( getr( cell ) > getr( kolor ) - ROZB && getr( cell ) < getr( kolor ) + ROZB ) { } //edit: aa, obszar.. znajdź skrajne punkty i walnij rect na nich(skrajny w lewo,skrajny w górę,skrajny prawo,skrajny w dół) znajdziesz je w jakimś kontenerze w którym będziesz składował współrzędne znalezionych puntów. struct pt { int x, y; }; vector < pt > punkty; class find { int p, l, g, d; public: pt export1(); pt export2(); void operator ()( pt & s ) { if( s.x < l ) l == s.x; else if( s.x > p ) p == s.x; else if( s.y < g ) g == s.y; else if( s.y > d ) d == s.y; } };
find ff; for_each( punkty.begin(), punkty.end(), ff );
pt a = find.export1(), b = find.export2(); rect( bufor, a.x, a.y, b.x, b.y, ~kolor );
//edit: funkcje export# napisz se sam. wiadomo jak (góra z lewym, dół z prawym) |
|
m_zap Temat założony przez niniejszego użytkownika |
» 2010-10-14 17:46:25 no tak ale to będzie regularny kształt ? A mi chodzi o dynamicznie w zaleznosci od wgranego obrazka wykrywało obiekty o podobnym kolorze i je zaznaczało |
|
inny1997 |
» 2010-10-14 18:02:47 jedyny pomysł jaki mam to zapisywanie pikseli o podobnych kolorach a jeżeli zapisane piksele będą naokoło niezapisanych to je też zapisz . później możesz przekopiować prostokąt z obrazu (który wyznaczają najdalsze piksele obiektu) na bitmape, a następnie zamalować piksele nie występujace w spisie pixeli . |
|
ison |
» 2010-10-14 18:25:07 pewnie jeszcze dzisiaj wrzucę moją bibliotekę do allegro w której znajduje się łatwy w użyciu editbox,button i checkbox (z czasem będzie sporo nowych kontrolek ;P)
do do wykrywania podobnych kolorów to ważne jest czy ty chcesz wykryć na obrazku wszystkie obszary o podobnych kolorach czy tylko zaznaczyć ten obszar tam gdzie użytkownik kliknie myszką? |
|
madmike44 |
» 2010-10-14 19:29:28 Jeśli chodzi o ogólnie pojęte przetwarzanie obrazów i wykrywanie elementów na obrazach, to polecam się zaprzyjaźnić z biblioteką OpenCV - ogromne możliwości, stosunkowo prosta w użyciu no i licencja.... :) |
|
m_zap Temat założony przez niniejszego użytkownika |
» 2010-10-14 21:39:13 Jak już wrzucisz biblioteke mogłbys się pochwalic? |
|
ison |
» 2010-10-14 22:59:51 @m_zap jasne, wszystkie metody związane z kontrolkami dostępnymi będą znajdowały się w dokumentacji, którą właśnie piszę. Zostały mi jeszcze do opisania metody checkbox'a ale nie jest ich dużo (może nawet póki co nie będę tego pisał i wrzucę bez tego) ;) Mile byłaby widziana pomoc ze strony specjalisty w języku ang. aby poprawić wszelkie ewentualne błędy językowe |
|
« 1 » |