All Projects → kacpertopol → Cam_board

kacpertopol / Cam_board

Licence: gpl-3.0
Turn web cam into a black / white board

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Cam board

Piecewise linear fit py
fit piecewise linear data for a specified number of line segments
Stars: ✭ 141 (-10.19%)
Mutual labels:  numpy
Music Dance Video Synthesis
(ACM MM 20 Oral) PyTorch implementation of Self-supervised Dance Video Synthesis Conditioned on Music
Stars: ✭ 150 (-4.46%)
Mutual labels:  paper
Color recognition
🎨 Color recognition & classification & detection on webcam stream / on video / on single image using K-Nearest Neighbors (KNN) is trained with color histogram features by OpenCV.
Stars: ✭ 154 (-1.91%)
Mutual labels:  numpy
Paper
🌈 一个类纸风的主题paper🎉(still updating...)
Stars: ✭ 142 (-9.55%)
Mutual labels:  paper
Stb Tester
Automated Testing for Set-Top Boxes and Smart TVs
Stars: ✭ 148 (-5.73%)
Mutual labels:  numpy
Machine Learning With Python
Practice and tutorial-style notebooks covering wide variety of machine learning techniques
Stars: ✭ 2,197 (+1299.36%)
Mutual labels:  numpy
Data Analysis
主要是爬虫与数据分析项目总结,外加建模与机器学习,模型的评估。
Stars: ✭ 142 (-9.55%)
Mutual labels:  numpy
Rnn lstm from scratch
How to build RNNs and LSTMs from scratch with NumPy.
Stars: ✭ 156 (-0.64%)
Mutual labels:  numpy
Word2vec Spam Filter
Using word vectors to classify spam messages
Stars: ✭ 149 (-5.1%)
Mutual labels:  numpy
Pyaudiodsptools
Numpy Audio DSP Tools
Stars: ✭ 154 (-1.91%)
Mutual labels:  numpy
Msgpack Numpy
Serialize numpy arrays using msgpack
Stars: ✭ 147 (-6.37%)
Mutual labels:  numpy
Stock Price Predictor
This project seeks to utilize Deep Learning models, Long-Short Term Memory (LSTM) Neural Network algorithm, to predict stock prices.
Stars: ✭ 146 (-7.01%)
Mutual labels:  numpy
Alphalens
Performance analysis of predictive (alpha) stock factors
Stars: ✭ 2,130 (+1256.69%)
Mutual labels:  numpy
Pixel Cnn
Code for the paper "PixelCNN++: A PixelCNN Implementation with Discretized Logistic Mixture Likelihood and Other Modifications"
Stars: ✭ 1,774 (+1029.94%)
Mutual labels:  paper
Minet
CVPR2020, Multi-scale Interactive Network for Salient Object Detection
Stars: ✭ 155 (-1.27%)
Mutual labels:  paper
Ncls
The Nested Containment List for Python. Basically a static interval-tree that is silly fast for both construction and lookups.
Stars: ✭ 142 (-9.55%)
Mutual labels:  numpy
Mantid
Main repository for Mantid code
Stars: ✭ 150 (-4.46%)
Mutual labels:  numpy
Orjson
Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy
Stars: ✭ 2,595 (+1552.87%)
Mutual labels:  numpy
Tacotron 2
DeepMind's Tacotron-2 Tensorflow implementation
Stars: ✭ 1,968 (+1153.5%)
Mutual labels:  paper
Lits Liver Tumor Segmentation Challenge
LiTS - Liver Tumor Segmentation Challenge
Stars: ✭ 153 (-2.55%)
Mutual labels:  numpy

DESCRIPTION

Point your laptop web cam at a piece of paper and the program will stretch the writable area over the whole screen.

Video demonstrating some of the new features and improvements available here.

REQUIREMENTS

  • python 3
  • opencv (with the aruco module), numpy

USAGE

Prepare paper

For camera aspect ratio 16:9 print:

  • to_print/a4_16_by_9.pdf or to_print/a4_16_by_9.svg on A4 paper
  • to_print/a4_16_by_9_tiny.pdf or to_print/a4_16_by_9_tiny.svg on A4 paper. Uses tiny markers, for high resolution cameras.
  • to_print/a4_16_by_9_tiny_inside.pdf or to_print/a4_16_by_9_tiny_inside.svg on A4 paper. Uses tiny markers, for high resolution cameras. The 16:9 ratio is inside the markers (see the "r" key binding below).
  • to_print/letter_16_by_9.pdf or to_print/letter_16_by_9.svg on letter paper

For camera aspect ratio 4:3 print:

  • to_print/a4_4_by_3.pdf or to_print/a4_4_by_3.svg on A4 paper
  • to_print/letter_4_by_3.pdf or to_print/letter_4_by_3.svg on letter paper

The small circle marks the top left part of the page. If the aspect ratio of your web cam is different from 16:9 or you want to use paper with a different size see custom page

Setup web cam

Tilt your web cam so that all 4 ARUCO markers are in it's field of view.

IMPORTANT: To use the script with Zoom, Skype, MS Teams, ... Disable the camera in these programs first, before running the script. Otherwise a "camera busy" error will be thrown.

Run cam_board

In the terminal navigate to the cam_board directory.

  • To launch the script:
<USER> $ ./cam_board 
  • To display command line options:
<USER> $ ./cam_board -h

Key bindings

  • "q" - quit
  • "s" - save screen to PNG files to create slide show
    • the names are chosen automatically 0001.png, 0002.png, ...
    • by default the files are saved in the current working directory
  • "a" - smooth the image by calculating an average of recent frames on / off
  • "i" - invert image on / off
  • "d" - de-noise on / off
  • "l" - de-noise with colors on / off
  • "w" - warp camera image to ARUCO markers on / off
  • "k" - apply sharpening kernel on / off
  • "p" - freeze image on / off
  • "r" - warp the inside of the markers on / off
  • "f" - full screen mode / windowed mode

Adjust the configuration file

Edit aruco_cam_config to change settings.

Custom page

You can make your own marker page with the markers from to_print/symbols. They should be placed in corners of a rectangle that matches the aspect ratio of your web cam. Careful: the orientation of the symbols is important and they might require rotation - see a4.svg for reference.

Conserve printer ink / toner

  • tape one printout with the 4 markers to desk surface (make sure the circle is positioned correctly and use tape that can later be removed from the desk surface without damaging it)
  • once the script recognizes the 4 ARUCO markers and stretches them to the whole screen place a blank sheet of paper over the taped printout
  • if the camera moves, remove any paper covering the printout and the program will recalculate how to warp the camera image

Better resolution at the bottom

  • laptop stands that allow tilting might help position the camera more perpendicular to the printout with markers resulting in better resolution at the bottom of the printable area
  • manipulating the position of the laptop might damage it, be careful :-)

Python version error

In some linux distributions python 3 is the default. If that is not the case on your system you can:

  • adjust the first, hashbang, line of cam_board or ...
  • ... run through python 3:
<user> $ python3 ./cam_board

MISCELLANEOUS

  • ArUco markers made using this
  • This is a simple script bodged togather from various opencv tutorials, here is a good place to start
  • Sharpening kernel see wiki and this
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].