[javascript] Zamiana obrazu na macierz

0

Witam. Zainteresowałem się ostatnio przekształceniami obrazów i chciałbym w javascripcie zastosować dla obrazu np. filtr Sobela albo Prewitta. Czy jest to w ogóle możliwe? Nie mogłem znaleźć nigdzie odpowiedzi w sieci. Interesuje mnie generalnie jak zamienić obraz na macierz a gdy już takową macierz otrzymam to czy da się bez problemu ją pomnożyć przez taką macierz maski dla konkretnego filtru. Z góry dziękuje za pomoc.

0

Pewnie źle szukałeś. Raczej nie ma co googlować używając pojęć takich jak "macierz". To bardziej matematyczne określenie.

Tobie chodzi o odczyt i zapis pojedynczych pikseli obrazka. Gdy będziesz miał taką możliwość, to z łatwością będziesz mógł wrzucić odczytane piksele do dwuwymiarowej tablicy JavaScript (tj. tablicy tablic), która będzie reprezentowała to co nazywasz macierzą. Tę tablicę sobie poprzekształcasz, a następnie zrzucisz wynik do obrazka.

Manipulowanie pojedynczymi pikselami jest możliwe w JavaScripcie z pomocą elementu canvas, będącego częścią nieukończonej jeszcze specyfikacji HTML5. canvas jest już zaimplementowany w nowoczesnych przeglądarkach, ale niestety nie w IE. Istnieje biblioteka Raphael JS, która zapewnia funkcjonalność podobną do canvas we wszystkich przeglądarkach. Na samym canvas można narysować obrazek za pomocą wywołania jednej funkcji.

Co do tego, czy da się w JavaScripcie mnożyć "macierze"... Bez problemu. Danymi w tablicach można dowolnie manipulować. Da się więc napisać własną funkcję mnożącą macierze -- ot, dwie pętelki i troszkę arytmetyki.

Radzę pogooglać o tym canvas (używaj angielskich fraz i raczej unikaj "matrixów"; jak już to "array" [tablica]). Martwi mnie troszkę Twoje pytanie o mnożenie macierzy. Użycie tablic do reprezentacji macierzy jest raczej oczywiste i stosuje się je w różnych językach programowania. Podobnie wygląda sprawa z mnożeniem wartości w takich tablicach. Jeśli jednak nie masz o tym pojęcia, to nie będzie Ci łatwo. No ale jeśli zaimplementowałbyś filtry w Javie czy C++, to dasz radę i w JavaScripcie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1