Skip to content
/ imfx Public

Apply a filter to an image through kernel convolution

Notifications You must be signed in to change notification settings

mebble/imfx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ImFx

Perform client-side image processing algorithms like:

  • Spatial domain filtering
  • Bit-plane slicing

Check out the demo.

What it does

  • Takes an image
  • Takes a kernel
  • Applies kernel convolution on the image
  • Displays the output

What it looks like

Kernel for image sharpening

The kernel for image sharpening

Kernel for edge detection

The kernel for edge detection

Sharpening an image of a cat in a hat Sharpening an image of a cat in a hat (Source: Photo by rawpixel.com from Pexels)

Edge Detection on an image of skeletons on the street Edge Detection on an image of skeletons on the street (Source: Photo by Iván Rivero from Pexels)

TODOs

  • Choose updatable kernel from templates
  • Choose from a selection of images
  • Split and process image across 4 workers
  • Log the time taken to process image. Can log the time taken separately for each worker
  • Implement more image processing stuff:
    • min/max/median filters
    • Separable filters for faster convolution
    • Bit-plane slicing
  • Use WebGL for fast processing in each worker
  • Upload image from device
  • Take camera photo and use image
  • Download output to device
  • Allow use of 5x5 kernels
  • Use native canvas api instead of p5
  • populate the pixels of the result image as they return from the web worker
  • use rxjs
  • floyd-steinberg dithering and other codingtrain challenges

About

Apply a filter to an image through kernel convolution

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published