Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RetroLens

Kamera retro berbasis gestur tangan. Bentuk huruf "L" dengan kedua tangan, tarik untuk membuka bingkai, dan RetroLens akan meluruskan area di dalam bingkai (perspective warp), menerapkan filter retro, lalu menyimpannya otomatis setelah tangan diam beberapa detik. Tersedia juga mode menggambar di udara menggunakan ujung telunjuk.

Features

  • Deteksi tangan real-time (MediaPipe Hand Landmarker, hingga 2 tangan)
  • Bingkai "L" dua tangan sebagai viewfinder dengan penghalusan gerakan
  • Perspective warp otomatis (scanner) pada area di dalam bingkai
  • 7 lensa filter: MONO, KONTRAS, FILM, GARIS, AMBANG, DITHER, NEGATIF
  • Auto-capture setelah tangan diam, lengkap dengan hitung mundur & progress bar
  • HUD retro: chromatic aberration, scanline, vignette, indikator ROLL/PITCH/YAW
  • Mode GAMBAR: menggambar di udara dengan 4 warna pena dan efek glow
  • Perpindahan mode melalui gestur tahan (menunjuk / telapak terbuka)
  • Camera stream threaded agar frame selalu terbaru (mendukung IP camera)

Requirements

  • Python 3.9+
  • Webcam, atau aplikasi IP camera di HP (mis. IP Webcam / DroidCam / Iriun)
  • Berkas model assets/hand_landmarker.task

Installation

git clone <url-repo-anda>
cd RetroLens

python -m venv .venv
source .venv/bin/activate      # Windows: .venv\Scripts\activate

pip install -r requirements.txt

Unduh model MediaPipe dan letakkan di folder assets/:

curl -L -o assets/hand_landmarker.task \
  https://storage.googleapis.com/mediapipe-models/hand_landmarker/hand_landmarker/float16/1/hand_landmarker.task

Usage

Atur sumber video pada core/config.py:

SUMBER = "http://192.168.1.11:8080/video"   # IP camera
# SUMBER = 0                                # webcam lokal

Jalankan aplikasi:

python app.py

Alur singkat:

  1. Bentuk huruf "L" dengan kedua tangan, satukan, lalu tarik untuk membuka bingkai.
  2. Tahan tangan diam selama 3 detik — foto tersimpan otomatis ke folder foto/.
  3. Untuk masuk mode GAMBAR: tunjuk dengan jempol ditekuk dan tahan 2 detik.
  4. Untuk kembali ke mode LENSA: buka telapak tangan dan tahan 2 detik.

Keyboard Controls

Tombol Fungsi
SPACE Ganti lensa filter berikutnya
M Beralih antara mode LENSA dan GAMBAR
C Bersihkan kanvas gambar
P Ganti warna pena
S Simpan tangkapan layar manual
D Tampilkan / sembunyikan info debug
Q Keluar dari aplikasi

Gesture Controls

Gestur Mode Fungsi
Dua tangan "L" LENSA Membentuk bingkai foto
Menunjuk (jempol ditekuk), tahan LENSA Masuk mode GAMBAR
Telunjuk menunjuk GAMBAR Menggambar
Peace GAMBAR Pindah tanpa menggambar
Kepalan GAMBAR Hapus kanvas
Telapak terbuka, tahan GAMBAR Kembali ke mode LENSA

Project Structure

RetroLens/
├── app.py              # entry point & loop aplikasi
├── requirements.txt
├── README.md
├── LICENSE
├── .gitignore
├── assets/
│   └── hand_landmarker.task
├── core/
│   ├── config.py       # seluruh konstanta & AppConfig
│   ├── camera.py       # KameraStream (threaded capture)
│   ├── detector.py     # pembungkus MediaPipe HandLandmarker
│   ├── gesture.py      # pengenalan gestur
│   ├── filters.py      # grading retro + registry lensa
│   ├── scanner.py      # perspective warp & komposit
│   ├── drawing.py      # HUD primitif + kanvas mode gambar
│   └── utils.py        # geometri & helper penyimpanan
├── screenshots/
└── docs/

Screenshots

Letakkan tangkapan layar pada folder screenshots/, lalu tautkan di sini:

![Mode Lensa](screenshots/lensa.png)
![Mode Gambar](screenshots/gambar.png)

Future Plans

  • OCR pada hasil scan (Tesseract / PaddleOCR)
  • Ekspor PDF multi-halaman
  • AI auto crop untuk deteksi dokumen tanpa gestur
  • Filter kamera tambahan melalui daftarkan_lensa()
  • Sistem plugin untuk lensa dan gestur pihak ketiga

Credits

  • MediaPipe — hand landmark detection
  • OpenCV — pengolahan citra dan tampilan
  • NumPy — komputasi numerik

About

An open-source gesture-controlled scanner with real-time hand tracking, perspective correction, retro effects, and air drawing powered by OpenCV & MediaPipe.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages