MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
ImageFilter.hpp File Reference

2D spatial filtering on normalised float image spans. More...

+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  MayaFlux
 Main namespace for the Maya Flux audio engine.
 
namespace  MayaFlux::Kinesis
 
namespace  MayaFlux::Kinesis::Vision
 

Functions

void MayaFlux::Kinesis::Vision::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 MayaFlux::Kinesis::Vision::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 > MayaFlux::Kinesis::Vision::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 MayaFlux::Kinesis::Vision::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.
 
void MayaFlux::Kinesis::Vision::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 > MayaFlux::Kinesis::Vision::gaussian_blur (std::span< const float > src, uint32_t w, uint32_t h, float sigma)
 Separable Gaussian blur.
 

Detailed Description

2D spatial filtering on normalised float image spans.

Pure functions. No MayaFlux type dependencies.

Conventions

  • All inputs are single-channel normalised float in [0, 1] unless noted
  • w and h are pixel dimensions; caller ensures span size == w * h
  • Border handling is clamp-to-edge throughout
  • Separable filters decompose into two 1D passes for O(w*h*k) cost rather than O(w*h*k^2)
  • Parallelism handled internally via Parallel::par_unseq

Definition in file ImageFilter.hpp.