GIMP/Programowanie/Mathmap: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
47fc19cc (dyskusja | edycje)
mNie podano opisu zmian
Nie podano opisu zmian
 
Linia 2:
 
 
Mathmap jest to narządzie do tworzenia i przetwarzania obrazów. <ref>[http://www.complang.tuwien.ac.at/schani/mathmap/ The MathMap Image Processing Application by Mark Probst]</ref>
Może być użyte jako :
* wtyczka ( ang. plugin) do Gimpa
* narzędzie do pracy z linii komendpoleceń ( tylko wersja dla linuxaLinuksa)
 
Linia 11:
'''Sposoby użycia''' wtyczki:<ref>[http://registry.gimp.org/node/22298 MathMap in Gimp Plugin Registry]</ref>
* jako jeden z wielu filtrów Gimpa
* jako narzędzie do tworzenia nowych filtrów :
** z użyciem graficznego Composer'a ( podobny do Quartz Composer dla MacOS X lub Yahoo! Pipes).
** z użyciem wbudowanego języka programowania<ref>[http://www.complang.tuwien.ac.at/schani/mathmap/language.html Opis języka Mathmap]</ref>
 
 
Opracowane na podstawie:
* OS : Linux
** dystrybucja Ubuntu wersja 10.04 LTS - Lucid Lynx
** jądro 2.6.32-31-generic x86_64
Linia 34:
==Wymagane pakiety ==
 
* The GIMP 2.4 ( także libgimp2.0-dev )
* GSL (GNU Scientific Library),
** GSL CBLAS
** gsl bin
* fftw ( version 3)
* libgtksourceview
* libjpeg, libpng, libgif (preferowany) lub libungif
Linia 44:
* bison
* flex
* clisp ( także clisp-dev )
* doxygen
* libtool
Linia 54:
sudo make install
 
Jeśli doinstalowywałeś jakieś pakiety to pamiętaj aby przed powtórnym wywołaniem make :
make clean
 
Linia 60:
=Uruchomienie=
 
== Z linii komendpoleceń ==
 
Wywołaj :
mathmap --help
 
aby uzyskać pomoc.
 
Przykład użycia :
 
mathmap -s256x256 'filter gray () grayColor(0.5) end' out.png
Linia 84:
 
W wersji 2.6 gimpa polskiej kompozytora wywołujemy okno dialogowe wtyczki poprzez Menu/Filtry/Ogólne/MathMap/MathMap i otwieramy zakładkę Expressions.
Możemy tu wpisywać swoje filtry lub wczytywać i edytować istniejące ( pliki z rozszerzeniem mm ).
 
=Programowanie=
Linia 94:
====Wstęp====
 
'''Składnia''' wygląda następująco :
 
options filter name (user_values)
Linia 100:
end
 
Poszczególne elementy oznaczają :
* options = opcje filtra ( mogą nie występować)
* filter = słowo kluczowe oznaczające początek definicji ( zawsze musi być)
* user_values = parametry filtru ( mogą nie występować)
* expression = wyrażenie opisujące co filtr robi
* end = słowo kluczowe oznaczające koniec definicji( (zawsze musi być)
 
 
 
'''Zasada działanie''' filtra jest prosta : dla każdego piksela obrazu oblicza kolor, czyli ostatnim elementem w wyrażeniu jest zawsze kolor piksela.
 
 
 
Każda wartość jest '''krotką (ang. tuple)''', tzn. listą wartości poprzedzoną '''znacznikiem ( ang. tag)'''. <ref>[http://www.complang.tuwien.ac.at/schani/mathmap/taggedtuples.html tagged tuples -Mathmap doc]</ref>
 
Na przykład rgba:[1,0,0,1] oznacza kolor czerwony o zerowej przeźroczystości ( ang. fully opaque color red )
 
Pojedyncze liczby mogą być zapisywane normalnie, nie jako krotki. Na przykład 3.1415 odpowiada nil:[3.1415].
Linia 121:
==== Układy współrzędnych obrazu ====
 
Są 2 układy współrzędnych :
* kartezjański : xy
* biegunowy ( polarny) : ra
 
 
Linia 130:
=====Kolor=====
 
Mamy dwa rodzaje koloru :
* rgba ( RGBA Color ), np. rgba:[1,0,0,1] oznacza kolor czerwony o zerowej przeźroczystości ( ang. fully opaque color red ).
* hsva (HSVA Color )
 
'''Jednolity''' kolor RGB obrazu :
filter blue ()
rgbColor(0, 0, 1)
end
 
'''Gradient''' szary :
 
proporcjonalny do wartości x :
filter gray ()
# x is changing from -1 to 1
Linia 147:
end
 
proporcjonalny do bezwzględnej wartości x :
filter gray2 ()
p=abs(x); # x is changing from -1 to 1
Linia 153:
end
 
proporcjonalny do bezwzględnej wartości sin(x*pi) :
filter sin ()
grayColor(abs(sin(x*pi)))
Linia 159:
 
 
Inna wersja z przeskalowaniem zakresu zmiennej "x" z [-1,1] do [0,1] :
filter gray_gradient ()
grayColor(scale(x, -1, 1, 0, 1))
end
 
to samo inaczej zapisane :
filter gray_gradient ()
grayColor((x+W/2)/W)
Linia 171:
 
 
proporcjonalny do odległości piksela od centrum = ( 0,0) bez powtórzeń :
filter gray_radius ()
grayColor(r) # color component is proportional to radius
end
 
proporcjonalny do odległości piksela od centrum = ( 0,0) z powtórzeniami :
filter rmod ()
grayColor((r%0.4)/0.4)
Linia 183:
 
 
proporcjonalny do kąta piksela ( a = angle ) :
filter gray_angle ()
# angle in radians : (0 <= a < 2*pi)
# polar coordinate of pixel = ra
p=scale(a, -2*pi, 2*pi, -1, 1); # map a from [-2pi,2pi] to [-1,1] range
Linia 193:
=====Obraz =====
 
Aby '''stworzyć nowy obraz''' : cały czerwony
 
filter red ()
Linia 201:
Jest to filtr o nazwie "red". Używa wbudowanej funkcji rgbColor.<ref>[http://www.complang.tuwien.ac.at/schani/mathmap/reference.html Omówienie języka Mathmap]</ref>
 
Filtr ( wyrażenie czyli ang. expression) możemy zapisać jako '''plik z rozszerzeniem mm''' : red.mm w podkatalogu examples lub
~/.gimp-2.6/mathmap/expressions
 
Jeśli chcemy '''zmodyfikować istniejący obraz''' :
 
filter ident (image in)
Linia 210:
end
 
Ten filtr nic nie robi ( ident), ale pokazuje najprostszy filtr operujący na istniejącym już obrazie.
 
=Efekty działania=
Linia 224:
</gallery>
 
Więcej na :
* [http://fiveprime.org/hivemind/Tags/gimp,mathmap flickrhivemind.net]
* [http://www.flickr.com/search/?q=mathmap flickr]
Linia 230:
 
=Licencja=
Jest to wolne oprogramowanie ( ang. Free Software) na licencji GNU General Public Licence.
 
=Źródła=