• Stars
    star
    123
  • Rank 288,481 (Top 6 %)
  • Language
    Python
  • License
    MIT License
  • Created over 5 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Generate and Decode structured light. Binary, Gray, XOR, Ramp, Phase-Shifting, Stripe.

Structured Light

These programs generate and decode structured light.

Currently supports

Installation

pip install git+https://github.com/elerac/structuredlight

Usage

import structuredlight as sl

width  = 640
height = 480

gray = sl.Gray()

imlist_pattern = gray.generate((width, height))

# Projecting patterns from a projector (or display) and capture images
imlist_captured = imlist_pattern

img_index = gray.decode(imlist_captured, thresh=127)

print(img_index)
# [[  0   1   2 ... 637 638 639]
#  [  0   1   2 ... 637 638 639]
#  ...
#  [  0   1   2 ... 637 638 639]]

Supported structured light

Binary code

binary = sl.Binary()
imlist = binary.generate((width, height))
img_index = binary.decode(imlist, thresh=127)

Gray code

gray = sl.Gray()
imlist = gray.generate((width, height))
img_index = gray.decode(imlist, thresh=127)

XOR code

xor = sl.XOR(index_last=-1)
imlist = xor.generate((width, height))
img_index = xor.decode(imlist, thresh=127)

Ramp code

ramp = sl.Ramp()
imlist = ramp.generate((width, height))
img_index = ramp.decode(imlist)

Phase-Shifting

phaseshifting = sl.PhaseShifting(num=3)
imlist = phaseshifting.generate((width, height))
img_index = phaseshifting.decode(imlist)

Single stripe

stripe = sl.Stripe()
imlist = stripe.generate((width, height))
img_index = stripe.decode(imlist)

Tips

How to binarize a grayscale image

Some of the code (Binary, Gray, XOR, ...) needs to binarize. This program provides three methods. See the wiki for details.

How to display images in full screen

When you use structured light, you'll need a full screen display from a projector or display. Here is a program to display the image in full screen.