This project is an interactive visualization of a convolution filter, written in x86-64 assembly with a basic C++ frontend. It transforms bitmap images producing a mixed effect of saturation & blur of intensity depending on current cursor position.
The following mask is used, where r would be the pixel distance from your mouse:
[ 0 -1 0 ] [ 1 2 1 ]
[ -1 5 -1 ] + [ 2 -4 2 ] × min( r / (2 × min(width, height)), 1 )
[ 0 -1 0 ] [ 1 2 1 ]
It was developed as part of the assembly intro course at Warsaw University of Technology.
- Clone the repo
git clone https://github.com/szczaww/x86-convolution-filter
- Build the project
make
- Run for your image of choice
./build/app in/<image-name>.bmp
- Left click to update cursor position & right click to reset image back to normal