2013-01-14 11 views
5

Potrzebuję napisać skrypt, aby zamazać obraz. To nie byłby problem, gdybym go nie potrzebował, żeby go zamazać. Naprawdę ciężko.PHP najszybszy sposób na zastosowanie silnego rozmycia

Teraz gaussowski filtr rozmycia GD jest naprawdę słaby. I imageconvolution akceptuje tylko matryce 3x3 z jakiegoś powodu, więc nie mogę wygenerować gaussian matrix z większym promieniem dla silniejszego rozmycia? Nawet gdybym mógł, nie jestem pewien, jak szybko by to było.

Wielokrotne rozmycie gaussowskie działa, ale jest wolne naprawdę. Aby uzyskać efekt, którego szukam, potrzebuję go uruchomić 40-100 razy nad obrazem, i oczywiście trwa to 10-20 sekund.

Czy istnieje sposób na osiągnięcie tego, czego szukam w rozsądnym czasie, przy użyciu bibliotek dołączonych do PHP?

Oto dokładny efekt. Czas generowania: 10.972307920456 sekund. 80 karnetów.

oryginalny:

enter image description here

Przetworzony:

enter image description here

+1

Można sprawdzić, w jaki sposób mógłby wykonać ImageMagick. Ma macierzysty interfejs PHP: http://www.imagemagick.org/Usage/blur/ – ddinchev

+0

Ale potrzebuję go, aby dołączyć do PHP, a niestety nie. Byłbym naprawdę szczęśliwy, gdyby ktoś nawet wiedział o bardzo niedokładnym, ale bardzo szybkim algorytmie, który mógłbym uruchomić na obrazku na podstawie piksela. –

+1

Ale GD (to, czego aktualnie używasz) NIE jest dołączone do PHP. Po prostu ma wrapper dla PHP podobny do IM ... – ddinchev

Odpowiedz

0

bool Imagick::blurImage (float $radius , float $sigma [, int $channel ])

a). $radius Promień rozmycia

b). $sigma Odchylenie standardowe

c). $channel Stała stałej typu kanału. Gdy nie są dostarczane, wszystkie kanały są rozmyte.

Powiązane problemy