MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Kinesis::Vision Namespace Reference

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< Keypointextract_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< Contourfind_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 &params)
 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< TrackResulttrack_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< TrackResulttrack_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.