Pupil: Image Processing Skills
SUMMARY
Pupil is a module in the Telekinesis SDK containing skills for image processing and low-level vision algorithms.
It provides a set of modular tools for preprocessing, filtering, and transforming images, enabling developers to build robust vision pipelines for robotics applications.
Install Telekinesis Skill Library
Create an API key, install
telekinesis-ai and module specific installations and dependencies in a Python environment. Go to the Quickstart
Pick a starter and run your first Skill end-to-end - 2D / 3D vision, webcam capture, robot motion, or a full vision-to-robot pipeline, all visualized in Rerun.
When to Use Pupil?
Use Pupil for robotics applications that require low-level image processing and preprocessing, such as:
- Enhancing camera input for vision-guided pick-and-place
- Preparing images for object detection or segmentation
- Noise reduction and filtering for robot navigation
- Real-time feature extraction for tracking or visual servoing
- Camera calibration and image rectification in robotics pipelines
What Does Pupil Provide?
Pupil includes a collection of modular skills for:
- Image filtering and enhancement
- Noise reduction and smoothing
- Geometric transformations and rectification
- Basic computer vision algorithms for preprocessing
How to Use Pupil?
To use the skills from Pupil, simply use:
python
from telekinesis import pupilHere is a minimal example:
python
from telekinesis import pupil
from datatypes import datatypes, io
# Load an image
image = io.load_image(filepath=datatypes.String("path/to/image.jpg"))
# Apply Gaussian blur
blurred_image = pupil.filter_image_using_gaussian_blur(
image=image,
kernel_size=datatypes.Int(5),
sigma_x=datatypes.Float(1.0)
)
# Save the result
io.save_image(image=blurred_image, filepath=datatypes.String("output.jpg"))Overview of Skills
| SDK Call | Description |
|---|---|
| enhance_image_using_clahe | Applies Contrast Limited Adaptive Histogram Equalization. |
| enhance_image_using_auto_gamma_correction | Applies gamma correction for brightness adjustment. |
| enhance_image_using_white_balance | Applies white balance correction to remove color casts. |
| filter_image_using_bilateral | Applies bilateral filtering for edge-preserving smoothing. |
| filter_image_using_blur | Applies simple box blur for fast smoothing. |
| filter_image_using_box | Applies normalized box filter with depth control. |
| filter_image_using_gaussian_blur | Applies Gaussian blur for smooth noise reduction. |
| filter_image_using_median_blur | Applies median filtering to remove salt-and-pepper noise. |
| filter_image_using_laplacian | Applies Laplacian operator for edge detection. |
| filter_image_using_sobel | Applies Sobel operator for gradient-based edge detection. |
| filter_image_using_scharr | Applies Scharr operator for improved gradient estimation. |
| filter_image_using_gabor | Applies Gabor filter for texture and oriented feature detection. |
| filter_image_using_frangi | Applies Frangi vesselness filter for detecting tubular structures. |
| filter_image_using_hessian | Applies Hessian-based vesselness filtering. |
| filter_image_using_sato | Applies Sato tubeness filter for ridge detection. |
| filter_image_using_meijering | Applies Meijering neuriteness filter for detecting thin structures. |
| filter_image_using_morphological_erode | Erodes bright regions to remove small features. |
| filter_image_using_morphological_dilate | Dilates bright regions to fill gaps and expand features. |
| filter_image_using_morphological_close | Closes holes by applying dilation followed by erosion. |
| filter_image_using_morphological_open | Opens regions by applying erosion followed by dilation. |
| filter_image_using_morphological_gradient | Computes morphological gradient for edge detection. |
| filter_image_using_morphological_tophat | Extracts small bright features using top-hat transform. |
| filter_image_using_morphological_blackhat | Extracts small dark features using black-hat transform. |
| transform_image_using_pyramid_downsampling | Downsamples image with anti-aliasing for pyramid construction. |
| transform_image_using_pyramid_upsampling | Upsamples image for pyramid reconstruction. |
| transform_mask_using_blob_thinning | Applies morphological thinning for skeletonization. |
| calculate_image_pca | Computes PCA on binary mask and visualizes centroid and principal axis. |
| calculate_image_centroid | Calculates centroid of non-zero pixels in a binary mask. |
| convert_image_color_space | Converts image between color spaces (e.g., BGR to RGB, RGB to HSV). |
| normalize_image_intensity | Normalizes image intensity using minmax or histogram methods. |
| split_image_into_channels | Splits image into color channels (B, G, R). |
| merge_image_from_channels | Merges channel images into multi-channel image. |
| resize_image | Resizes image by scale factor. |
| resize_image_with_aspect_fit | Resizes to target dimensions while preserving aspect ratio. |
| rotate_image | Rotates image by angle in degrees. |
| translate_image | Shifts image by dx and dy pixels. |
| pad_image | Pads image on top, bottom, left, and right. |
| crop_image_center | Crops image to fixed dimensions, centered; pads if smaller. |
| crop_image_using_bounding_boxes | Crops image using multiple bounding boxes. |
| crop_image_using_polygon | Crops image using polygon mask. |
| bitwise_and_images | Performs bitwise AND between two images. |
| bitwise_or_images | Performs bitwise OR between two images. |
| bitwise_xor_images | Performs bitwise XOR between two images. |
| bitwise_difference_images | Performs absolute difference between two images. |
| bitwise_not_image | Performs bitwise NOT (inversion) on image. |
| overlay_images_using_weighted_overlay | Blends two images using weighted overlay. |
| project_pixel_to_camera_point | Projects pixel and depth to 3D point in camera coordinates. |
| project_camera_point_to_pixel | Projects 3D camera point to pixel coordinates. |
| project_pixel_to_world_point | Projects pixel and depth to 3D point in world coordinates. |
| project_world_point_to_pixel | Projects 3D world point to pixel coordinates. |

