CamPaint turns your webcam into a paintbrush. Pick a color from the live feed and "paint" by moving that color in front of the camera. It showcases real-time region detection, simple computer vision, and a playful UI.
- Real-time color tracking and region growing
- Three display modes: webcam (w), recolored regions (r), painting (p)
- Save painting and recolored output (s, o)
- Clean, testable Java implementation with Maven, JUnit, and JaCoCo
- CI via GitHub Actions, Dockerized build/run
- Java 17+
- Maven 3.9+ (for local build) or Docker
mvn -B -DskipTests=false testThis repo includes a minimal VideoGUI stub to compile and run without the course framework. Replace with your own webcam/GUI for a full experience.
mvn -q -DskipTests package
java -cp target/campaint-1.0.0.jar com.moiz.campaint.CamPaintdocker build -t campaint:1.0.0 .
docker run --rm campaint:1.0.0- w: show live webcam (stub shows internal buffer)
- r: recolor detected regions
- p: paint using the largest detected region as a brush
- c: clear painting
- s: save painting to
pictures/painting.png - o: save recolored image to
pictures/recolored.png
Screenshots:
src/
main/java/com/moiz/campaint/ # app sources
test/java/com/moiz/campaint/ # unit tests
docs/ # docs and images
.github/workflows/ # CI workflows
- Lint/format: use default IDE formatting;
.editorconfigincluded - Tests: JUnit 5; coverage: JaCoCo (
target/site/jacoco/index.html)
Please see CONTRIBUTING.md and CODE_OF_CONDUCT.md.
MIT. See LICENSE.
We follow semantic versioning. See CHANGELOG.md.


