Roboflex Library that supports UVC-Compatible Webcams
Project description
roboflex.webcam_uvc
Support for web cameras on linux - actually just a thin wrapper around libuvc, so if your camera supports libuvc, you should be good to go.
System dependencies
apt-get install libusb-1.0-0-dev
apt-get install libjpeg-dev
# ...or, on mac:
brew install libusb
pip install
pip install roboflex.webcam_uvc
Import
import roboflex.webcam_uvc as rcw
Nodes
There is only one: WebcamSensor
# all parameters optional: below are the defaults
webcam_sensor = rcw.WebcamSensor(
width,
height,
fps,
device_index = -1,
format = UVC_FRAME_FORMAT_ANY,
name = "WebcamSensor",
)
# must be started!
webcam_sensor.start()
# you can do this:
webcam_sensor.print_device_info()
Messages
from roboflex.webcam_uvc import WebcamDataRGB
API:
# the timestamp just before reading from device
message.t0 -> Float
# the timestamp just after reading from device
message.t1 -> Float
# the capture time from the device
message.capture_time -> Float
# the sequence number from the device
message.sequence -> Int
# numpy array of shape=(width, height, channels), dtype=short
message.rgb -> np.ndarray
DYNOFLEX:
# the timestamp just before reading from device
message["t0"] -> Double
# the timestamp just after reading from device
message["t1"] -> Double
# the capture time from the device
message["t"] -> Double
# the sequence number from the device
message["s"] -> Double
# numpy array of shape=(width, height, channels), dtype=short
message["rgb"] -> np.ndarray
Other
Description of a device:
from roboflex.webcam_uvc import DeviceDescriptor
dd.idVendor -> int
dd.idProduct -> int
dd.bcdUVC -> int
dd.serialNumber -> str
dd.manufacturer -> str
dd.product -> str
# you probably just want to print it:
str(dd)
Free function: get list of connected devices (webcams) - list of DeviceDescriptor, above.
get_device_list() -> [DeviceDescriptor]
Available frame formats: pass to constructor of WebcamSensor for the format parameter.
from roboflex.webcam_uvc import uvc_frame_format
uvc_frame_format.UVC_FRAME_FORMAT_ANY
uvc_frame_format.UVC_FRAME_FORMAT_UNCOMPRESSED
uvc_frame_format.UVC_FRAME_FORMAT_COMPRESSED
# YUYV/YUV2/YUV422: YUV encoding with one luminance value per pixel and
# one UV (chrominance) pair for every two pixels.
uvc_frame_format.UVC_FRAME_FORMAT_YUYV
uvc_frame_format.UVC_FRAME_FORMAT_UYVY
# 24-bit RGB
uvc_frame_format.UVC_FRAME_FORMAT_RGB
uvc_frame_format.UVC_FRAME_FORMAT_BGR
# Motion-JPEG (or JPEG) encoded images
uvc_frame_format.UVC_FRAME_FORMAT_MJPEG
uvc_frame_format.UVC_FRAME_FORMAT_H264
# Greyscale images
uvc_frame_format.UVC_FRAME_FORMAT_GRAY16
uvc_frame_format.UVC_FRAME_FORMAT_GRAY8
# Raw colour mosaic images
uvc_frame_format.UVC_FRAME_FORMAT_BY8
uvc_frame_format.UVC_FRAME_FORMAT_BA81
uvc_frame_format.UVC_FRAME_FORMAT_SGRBG8
uvc_frame_format.UVC_FRAME_FORMAT_SGBRG8
uvc_frame_format.UVC_FRAME_FORMAT_SRGGB8
uvc_frame_format.UVC_FRAME_FORMAT_SBGGR8
# YUV420: NV12
uvc_frame_format.UVC_FRAME_FORMAT_NV12
# Number of formats understood
uvc_frame_format.UVC_FRAME_FORMAT_COUNT
Linux webcam help
Access denied to your webcam?
First, list your usb devices and find your webcam:
lsusb
For me, I see:
Bus 002 Device 025: ID 32e4:9230 HD USB Camera HD USB Camera
create a file called '50-usb-webcam.rules' in /etc/udev/rules.d with a single line:
SUBSYSTEM=="usb", ATTR{idVendor}="HD USB Camera", ATTR{idProduct}="HD USB Camera", MODE="0666"
then
udevadm control --reload-rules && udevadm trigger
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file roboflex.webcam_uvc-0.1.6.tar.gz.
File metadata
- Download URL: roboflex.webcam_uvc-0.1.6.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2f2b64f041bab0e3fbb5995290784418b01b5445ef2ffa3d5bdd32b13fa93e1
|
|
| MD5 |
3e9643634d0e1c4abb67d3beaa6ef413
|
|
| BLAKE2b-256 |
67637bbfcfa95d34e58974f8f01a666fee0edd128306ba9722f3d28618cf4053
|