|
MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
|
Namespaces | |
| namespace | Kernels |
Classes | |
| struct | BoundingBox |
| Axis-aligned bounding box in normalised image coordinates. More... | |
| struct | CannyParams |
| struct | ComponentResult |
| Result of connected component labelling. More... | |
| struct | ConnectedComponentsParams |
| struct | Contour |
| Closed contour extracted from a binary mask. More... | |
| struct | ExtractPeaksParams |
| struct | FilterSeparableParams |
| struct | FindContoursParams |
| struct | GaussianBlurParams |
| struct | GradientResult |
| Gradient maps produced by Sobel and Scharr operators. More... | |
| struct | HarrisParams |
| struct | KernelSpec |
| Compile-time 1D separable filter kernel. More... | |
| struct | Keypoint |
| Single interest point produced by a corner or blob detector. More... | |
| struct | MorphParams |
| struct | NormalizeRangeParams |
| struct | SnapshotEntry |
| Pixel buffer captured mid-pipeline by a Snapshot step. More... | |
| struct | ThresholdAdaptiveParams |
| struct | ThresholdParams |
| struct | TrackKeypointsParams |
| struct | TrackResult |
| Result for a single tracked point. More... | |
| class | VisionExecutor |
| Stateful executor for a VisionSequence. More... | |
| struct | VisionResult |
| Result of executing a VisionSequence on one frame. More... | |
| struct | VisionSequence |
| Ordered sequence of VisionSteps describing a complete vision pipeline. More... | |
| struct | VisionStep |
| One step in a VisionSequence: an op and its parameters. More... | |
Typedefs | |
| using | StructuredOutput = std::variant< std::monostate, GradientResult, ComponentResult, std::vector< Contour >, std::vector< Keypoint >, std::vector< TrackResult > > |
| using | VisionParams = std::variant< std::monostate, ThresholdParams, ThresholdAdaptiveParams, NormalizeRangeParams, GaussianBlurParams, FilterSeparableParams, CannyParams, MorphParams, HarrisParams, ExtractPeaksParams, TrackKeypointsParams, ConnectedComponentsParams, FindContoursParams > |
| Parameter variant covering all ops that carry parameters. | |
Enumerations | |
| enum class | VisionOp : uint8_t { RgbaToGray , RgbaToHsv , GrayToRgba , Downsample2x , Threshold , ThresholdAdaptive , ThresholdOtsu , NormalizeInplace , NormalizeRange , GaussianBlur , FilterSeparable , Sobel , Scharr , Canny , Erode , Dilate , Open , Close , MorphGradient , ConnectedComponents , FindContours , HarrisResponse , ExtractPeaks , TrackKeypoints , Snapshot } |
| Named operations available in a VisionSequence. More... | |
Functions | |
| void | apply_contour_mask (std::span< float > pixels, uint32_t w, uint32_t h, uint32_t channels, const Contour &contour, float origin_x, float origin_y, float scale_x, float scale_y) |
Zero all pixels in pixels that fall outside contour. | |
| void | canny (std::span< const float > gray, std::span< float > dst, uint32_t w, uint32_t h, float sigma, float low_threshold, float high_threshold) |
| Canny edge detector writing into a caller-supplied buffer. | |
| std::vector< float > | canny (std::span< const float > gray, uint32_t w, uint32_t h, float sigma, float low_threshold, float high_threshold) |
| Canny edge detector. | |
| void | close (std::span< const float > mask, std::span< float > tmp, std::span< float > dst, uint32_t w, uint32_t h, uint32_t radius) |
Morphological closing writing into dst. | |
| std::vector< float > | close (std::span< const float > mask, uint32_t w, uint32_t h, uint32_t radius) |
| Morphological closing: dilate then erode. | |
| ComponentResult | connected_components (std::span< const float > mask, uint32_t w, uint32_t h) |
| Label connected foreground components in a binary mask. | |
| void | dilate (std::span< const float > mask, std::span< float > dst, uint32_t w, uint32_t h, uint32_t radius) |
Dilation writing into dst. | |
| std::vector< float > | dilate (std::span< const float > mask, uint32_t w, uint32_t h, uint32_t radius) |
| Morphological dilation with square structuring element. | |
| void | downsample_2x (std::span< const float > src, std::span< float > dst, uint32_t w, uint32_t h, uint32_t &new_w, uint32_t &new_h) |
| 2x box-filter downsample writing into a caller-supplied buffer. | |
| void | downsample_2x (std::span< const float > src, std::span< float > dst, uint32_t w, uint32_t h, uint32_t channels, uint32_t &new_w, uint32_t &new_h) |
| 2x box-filter downsample for multi-channel interleaved data. | |
| std::vector< float > | downsample_2x (std::span< const float > src, uint32_t w, uint32_t h, uint32_t &new_w, uint32_t &new_h) |
| 2x box-filter downsample. | |
| void | erode (std::span< const float > mask, std::span< float > dst, uint32_t w, uint32_t h, uint32_t radius) |
Erosion writing into dst. | |
| std::vector< float > | erode (std::span< const float > mask, uint32_t w, uint32_t h, uint32_t radius) |
| Morphological erosion with square structuring element. | |
| std::vector< Keypoint > | extract_peaks (std::span< const float > response, uint32_t w, uint32_t h, float threshold, uint32_t nms_radius) |
| Extract peaks from a response map via non-maximum suppression. | |
| void | filter_horizontal_planes (std::span< const float *const > src, std::span< float *const > dst, uint32_t w, uint32_t h, std::span< const float > kernel) |
| Fused horizontal separable filter over N planes. | |
| void | filter_separable (std::span< const float > src, std::span< float > tmp, std::span< float > dst, uint32_t w, uint32_t h, std::span< const float > kernel_x, std::span< const float > kernel_y) |
| Separable 2D filter writing into caller-supplied buffers. | |
| std::vector< float > | filter_separable (std::span< const float > src, uint32_t w, uint32_t h, std::span< const float > kernel_x, std::span< const float > kernel_y) |
| Apply a separable 2D filter via two 1D passes. | |
| void | filter_vertical_planes (std::span< const float *const > src, std::span< float *const > dst, uint32_t w, uint32_t h, std::span< const float > kernel) |
| Fused vertical separable filter over N planes. | |
| std::vector< Contour > | find_contours (std::span< const float > mask, uint32_t w, uint32_t h, float min_area=0.0F, uint32_t max_contours=0) |
| Extract outer contours from a binary mask. | |
| void | gaussian_blur (std::span< const float > src, std::span< float > tmp, std::span< float > dst, uint32_t w, uint32_t h, float sigma) |
| Gaussian blur writing into caller-supplied buffers. | |
| std::vector< float > | gaussian_blur (std::span< const float > src, uint32_t w, uint32_t h, float sigma) |
| Separable Gaussian blur. | |
| void | gray_to_rgba (std::span< const float > gray, std::span< float > dst, uint32_t w, uint32_t h) |
| Global threshold writing into caller-supplied buffer. | |
| std::vector< float > | gray_to_rgba (std::span< const float > gray, uint32_t w, uint32_t h) |
| Convert single-channel gray to RGBA. | |
| void | harris_response (std::span< const float > gray, std::span< float > dx, std::span< float > dy, std::span< float > tmp, std::span< float > ixx, std::span< float > iyy, std::span< float > ixy, std::span< float > sxx, std::span< float > syy, std::span< float > sxy, std::span< float > dst, uint32_t w, uint32_t h, float k, std::span< const float > kern) |
| Compute the Harris corner response map into caller-supplied buffers. | |
| std::vector< float > | harris_response (std::span< const float > gray, uint32_t w, uint32_t h, float k=0.04F, float sigma=1.0F) |
| Compute the Harris corner response map. | |
| void | hash_combine (size_t &seed, size_t value) |
| Combine a hash into an existing seed, FNV-style. | |
| size_t | hash_vision_step (VisionOp op, const VisionParams ¶ms) |
| Hash a VisionStep's op and parameters together. | |
| void | morph_gradient (std::span< const float > mask, std::span< float > tmp, std::span< float > dst, uint32_t w, uint32_t h, uint32_t radius) |
Morphological gradient (dilate - erode) writing into dst. | |
| std::vector< float > | morph_gradient (std::span< const float > mask, uint32_t w, uint32_t h, uint32_t radius) |
| Morphological gradient: dilate minus erode. | |
| void | normalize_inplace (std::span< float > data) |
| Stretch values to fill [0, 1] using the span's observed min and max. | |
| void | normalize_range_inplace (std::span< float > data, float lo, float hi) |
| Clamp and remap values from [lo, hi] to [0, 1] in-place. | |
| void | open (std::span< const float > mask, std::span< float > tmp, std::span< float > dst, uint32_t w, uint32_t h, uint32_t radius) |
Morphological opening writing into dst. | |
| std::vector< float > | open (std::span< const float > mask, uint32_t w, uint32_t h, uint32_t radius) |
| Morphological opening: erode then dilate. | |
| void | rgba_to_gray (std::span< const float > rgba, std::span< float > dst, uint32_t w, uint32_t h) |
| Convert RGBA to luminance gray using BT.601 coefficients. | |
| std::vector< float > | rgba_to_gray (std::span< const float > rgba, uint32_t w, uint32_t h) |
| Convert RGBA to luminance gray using BT.601 coefficients. | |
| void | rgba_to_hsv (std::span< const float > rgba, std::span< float > dst, uint32_t w, uint32_t h) |
| Convert RGBA to HSV writing into caller-supplied buffer. | |
| std::vector< float > | rgba_to_hsv (std::span< const float > rgba, uint32_t w, uint32_t h) |
| Convert RGBA to HSV. | |
| void | scharr (std::span< const float > gray, std::span< float > dx, std::span< float > dy, std::span< float > tmp, uint32_t w, uint32_t h) |
| Scharr gradient writing dx and dy into caller-supplied buffers. | |
| GradientResult | scharr (std::span< const float > gray, uint32_t w, uint32_t h) |
| Scharr gradient operator. | |
| void | sobel (std::span< const float > gray, std::span< float > dx, std::span< float > dy, std::span< float > tmp, uint32_t w, uint32_t h) |
| Sobel gradient writing dx and dy into caller-supplied buffers. | |
| GradientResult | sobel (std::span< const float > gray, uint32_t w, uint32_t h) |
| Sobel gradient operator. | |
| std::vector< float > | threshold (std::span< const float > gray, float value) |
| Global threshold: output is 1.0f where input >= value, else 0.0f. | |
| void | threshold (std::span< const float > gray, std::span< float > dst, float value) |
| Global threshold writing into caller-supplied buffer. | |
| void | threshold_adaptive (std::span< const float > gray, std::span< float > dst, uint32_t w, uint32_t h, uint32_t block_size, float offset) |
| Adaptive threshold writing into caller-supplied buffer. | |
| std::vector< float > | threshold_adaptive (std::span< const float > gray, uint32_t w, uint32_t h, uint32_t block_size, float offset) |
| Adaptive threshold using local block mean minus offset. | |
| std::vector< float > | threshold_otsu (std::span< const float > gray) |
| Otsu threshold: finds the optimal global threshold by maximising inter-class variance, then applies it. | |
| void | threshold_otsu (std::span< const float > gray, std::span< float > dst) |
| Otsu threshold writing into caller-supplied buffer. | |
| std::vector< TrackResult > | track_keypoints (std::span< const float > prev_gray, std::span< const float > curr_gray, std::span< const float > grad_dx, std::span< const float > grad_dy, uint32_t w, uint32_t h, std::span< const glm::vec2 > prev_points, uint32_t window_radius=7, uint32_t max_iterations=20, float eigen_threshold=1e-4F, float error_threshold=0.3F) |
| Track keypoints using a pre-computed Sobel gradient of prev_gray. | |
| std::vector< TrackResult > | track_keypoints (std::span< const float > prev_gray, std::span< const float > curr_gray, uint32_t w, uint32_t h, std::span< const glm::vec2 > prev_points, uint32_t window_radius=7, uint32_t max_iterations=20, float eigen_threshold=1e-4F, float error_threshold=0.3F) |
| Track keypoints from prev_gray to curr_gray via Lucas-Kanade. | |