Só a título de curiosidade. Estou fazendo uma pequena biblioteca de processamento de imagens em JavaScript. Quem quiser acompanhar o trabalho: https://github.com/ViniGodoy/nicepic
Já inclui uma série de filtros: grayscale, sepia, câmera instantânea, binarização, negativo, transformação de cores, brilho, convolução, suavização (blur), sharpen, alto-relevo (emboss) e os detectores de bordas de laplace, sobel e prewitt. Também é possível fazer algumas operações para misturar imagens: soma, subtração, multiplicação, interpolação e uso de máscara para gerar canal alfa.
Tem suporte também a máscaras e carga de imagens usando FileReader.
Tudo com uma sintaxe simples, e já com processamento dividido para não travar o browser mesmo nos filtros mais pesados.
O projeto só é testado no Chrome, e usa agressivamente recursos novos do ES6.
Na sequencia pretendo incluir filtros que envolvam calculos de histograma (como correção automática de contraste, calculo de limiar de otsu) e também alguns usando o espaço de cor HSV. Depois partir para a parte de morfologia matemática.
