Pick a public-domain photograph and run classic image-processing algorithms on it: brightness and contrast, median and harmonic filters, edge and line detection, histogram equalisation, morphology, and the Fourier domain. The result appears straight away. The algorithms are the original C++ I wrote in 2019 for the Computer Vision course of my Information Technology bachelor's degree, compiled to WebAssembly and run unchanged. No image is uploaded; everything happens on your machine.
Every result below is produced by the actual compiled C++, applied to Ansel Adams's The Tetons and the Snake River (1942).
Each operation is the original C++ program, compiled to WebAssembly and run unchanged, driven exactly as it would be from a terminal:
canvas pixels -> encode 24-bit BMP -> write /input.bmp into Emscripten's in-memory filesystem
-> Module.callMain(['--orobertsi', '/input.bmp']) (the program's real main)
-> read /newOne.bmp -> decode BMP -> draw to canvas
-Dcimg_display=0 turns CImg's desktop-window calls into no-ops, so the original GUI code runs
harmlessly and image.save() still writes the result. The algorithm source is byte-for-byte
unchanged. See WEB-MUSEUM.md for the details and the full list of operations.
| Path | What |
|---|---|
Task1–Task4/ |
the original C++/CImg programs (unchanged algorithm source) |
docs/ |
the website (HTML/CSS/JS and the compiled wasm/), served by GitHub Pages |
build/build.sh |
compiles the four programs to WebAssembly |
WEB-MUSEUM.md |
what changed for the browser port, exhibited vs. omitted operations |
source ~/emsdk/emsdk_env.sh # Emscripten SDK
bash build/build.sh # writes docs/wasm/Task{1..4}.{js,wasm}Algorithms by Szymon Ruciński (2019). The gallery is public-domain photography from NASA, the Farm Security Administration / Office of War Information, the U.S. National Archives (Ansel Adams's National Park Service series), and the 1873 Wheeler Survey, sourced via the Library of Congress, the National Archives and Wikimedia Commons.







