Este projeto implementa um filtro de desfoque (blur) em imagens digitais usando uma combinação de processamento em C e uma API Node.js. O objetivo é demonstrar como uma convolução 3x3 pode ser aplicada diretamente sobre a matriz de pixels de uma imagem.
Mostrar como um filtro local de média sobre um kernel 3x3 suaviza uma imagem mantendo a integridade dos dados por meio de buffers separados e tratamento de bordas (padding / edge replication).
- O código C (
src/blur.c) lê uma imagem no formato PPM, aplica um filtro 3x3 e gera uma imagem PPM borrada. - O servidor Node.js (
server.js) recebe uploads, converte a imagem para PPM, executa o binário C e converte o resultado para JPG. - A interface web está em
public/index.html.
- Docker
OU:
- Node.js
- npm
- gcc
- make
- GraphicsMagick
-
Clone o repositório:
git clone 'https://github.com/CarvDev/matrix-blur-filter.git' cd matrix-blur-filter
-
Construa a imagem Docker:
docker build -t matrix-blur-app . -
Inicie o container:
docker run -d -p 3000:3000 --name blur-app matrix-blur-app
-
Abra no navegador:
http://localhost:3000
Para parar e remover o container:
docker stop blur-app && docker rm blur-app-
Clone o repositório:
git clone 'https://github.com/CarvDev/matrix-blur-filter.git' cd matrix-blur-filter
-
Instale as dependências Node.js:
npm install
-
Compile e execute o servidor:
make run
-
Abra no navegador:
http://localhost:3000
make build- compilasrc/blur.cemsrc/blur_programmake run- compila o binário e inicia o servidor Node.jsmake clean- remove o executável compilado e artefatos temporários