• Welcome to Forum graficzne Burning-Brushes.pl. Please log in or sign up.
 

Tworzenie granic(?)

Zaczęty przez artura4, Kwiecień 05, 2012, 15:04:50

Poprzedni wątek - Następny wątek
Szukam programu lub może jest taka funkcja w Gimpie lub innym darmowym programie graficznym która... jak to wytłumaczyć.

Mam np białe tło i kilka małych np kulek w np dwóch kolorach niebieski i zielony. Kulki w jednakowych kolorach są zgrupowane koło siebie ale również mogą się przenikać. Program musiałby powiększać równomiernie wszystkie kulki tworząc coraz większe palmy określające jakby granice, teren zajmowany przez te kolory.
Początek:

Wynik:


PS. Takie brzydkie bo w paincie ;P

nie ma takiego programu
lub funkcji w gimpie
lub innym darmowym programie graficznym

Myślałem, że może "plamki' jakoś by się powiększały, aż to połączenia....
Spróbuje zrobi własny programik który będzie prymitywnie dodawał piksele krok po kroku.
1. Dwa piksle:

2. Dookoła pierwszego zielonego:

3. Dookoła niebieskiego, ale tylko tam gdzie nie ma innego koloru:



no da się zrobić, tylko nie wiem czy to jest takie trywialne : p
być może jest, ale nie mam teraz jakiegoś dobrego pomysłu na to... chyba, że Ty sam masz

przyszło mi teraz na myśl takie trochę głupie rozwiązanie... można by rozmywać kropki, duplikować te rozmyte do momentu kiedy rozmyte kropki będą wyglądały jak prawie nie rozmyte... to mogłoby wymagać sporo duplikatów, ze 100? ...  cholera wie, zależy od wielkości wstępnych nierozmytych kropek i siły rozmycia (która nie może być za duża w przypadku małych kropek, no i im większa tym silniejsze rozmycie).... tak rozmywać i duplikować do czasu aż się oba kolory nie połączą...
problem mały taki, że przejście między tymi kolorami byłoby chyba płynne, a nie twarde tak jak byś chciał, ale to dałoby się poprawić bo photoshopie (i gimpie na pewno też) jest takie narzędzie, które zmniejsza ilość kolorów dostępnych w obrazie... wtedy to płynne przejście, zawierające w sobie wiele odcieni dwóch łączących się kolorów musiałoby się zredukować i przejście byłoby twarde.... nie pamiętam kurna tylko jak się nazywało to narzędzie, ale było w grupie tych od kolorów (przynajmniej w photoshopie) ;s
ręcznie robić coś takiego co opisałem to żadna przyjemność, chociaż zależy trochę od charakterystyki (wielkości, rozmieszczenia, zagęszczenia) kropek, które mają się scalić... ale w miarę znośnie dałoby się to zrobić w formie skryptu do ps'a czy gimpa, trzeba by się trochę tylko przygotować i poznać wszystkie potrzebne funkcje udostępnione w skryptach


Tak właśnie kombinowałem jak pisałeś na początku. Jakieś rozmywanie, potem może zawężenie palety kolorów, potem ponownie czy jakoś tak. Granica nie musi być bardzo wyraźna bo to ma być ogólny wygląd ułatwiający dostrzeżenie jaki obszar zajmują dane kolory. W wyobraźni to widzę jak by z tych punktów rozlewała się gęsta ciecz T_T :) ale to chyba moja wybujała wyobraźnia  :sciana:

Jak nie będzie raczej prostej metody to nie ma sensu. W sumie programowo algorytm powinien być dość prosty. Chyba, że jeszcze tak ja napisałeś w skryptach bezpośrednio w Gimpie, ale nigdy nie widziałem czegoś podobnego, ciekawe czy są takie możliwości i czy tutki jakieś się znajdzie.

no na gotowe skrypty czy tutoriale nie masz co liczyć, w necie w większości są jakieś proste rozwiązania czy wskazówki

co do algorytmu ewentualnej aplikacji to jakoś mega skomplikowany faktycznie raczej by nie był (zwłaszcza jakby to rozwiązać przy pomocy jak to nazwałeś "rozlewającej się cieszy"), ale problemem mogłaby być kwestia detekcji kiedy dany kolor zaczyna graniczyć z innym, czyli kiedy musi przestać się rozmnażać... i to jeszcze tak, żeby przestał się rozmnażać tylko tam gdzie już styka się z innym kolorem, a tam gdzie jest wolne miejsce to dalej się rozszerzał
trzeba by to jakoś turowo organizować (typowa pętla), żeby trochę uprościć, ale i tak dalej nie wiem jak sensownie można by wykrywać kolizje... programowanie grafiki wymaga strasznie matematycznego podejścia, a w tej chwili nie jestem wstanie tak podchodzić do sprawy (a nawet jakbym był to i tak jak w szczegółach taką aplikację zaprojektować nie wiem) : p
ale cholera utkwił mi w głowie ten Twój problem i od rana ciągle się zastanawiał jakbym musiał coś takiego zrobić to jakbym to zrobił xd