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

Compile-time separable filter kernel definition and named kernel bank. More...

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

Go to the source code of this file.

Classes

struct  MayaFlux::Kinesis::Vision::KernelSpec< N >
 Compile-time 1D separable filter kernel. More...
 

Namespaces

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

Variables

constexpr auto MayaFlux::Kinesis::Vision::Kernels::binomial3 = KernelSpec<3> { 1.0F, 2.0F, 1.0F }.normalize()
 
constexpr auto MayaFlux::Kinesis::Vision::Kernels::binomial5 = KernelSpec<5> { 1.0F, 4.0F, 6.0F, 4.0F, 1.0F }.normalize()
 
constexpr auto MayaFlux::Kinesis::Vision::Kernels::binomial7 = KernelSpec<7> { 1.0F, 6.0F, 15.0F, 20.0F, 15.0F, 6.0F, 1.0F }.normalize()
 
constexpr auto MayaFlux::Kinesis::Vision::Kernels::box3 = KernelSpec<3> { 1.0F, 1.0F, 1.0F }.normalize()
 
constexpr auto MayaFlux::Kinesis::Vision::Kernels::box5 = KernelSpec<5> { 1.0F, 1.0F, 1.0F, 1.0F, 1.0F }.normalize()
 
constexpr auto MayaFlux::Kinesis::Vision::Kernels::log_coarse = binomial5.convolve(binomial5).normalize()
 
constexpr auto MayaFlux::Kinesis::Vision::Kernels::log_fine = binomial5
 
constexpr auto MayaFlux::Kinesis::Vision::Kernels::prewitt_kx = KernelSpec<3> { -1.0F, 0.0F, 1.0F }
 
constexpr auto MayaFlux::Kinesis::Vision::Kernels::prewitt_ky = KernelSpec<3> { -1.0F, 0.0F, 1.0F }
 
constexpr auto MayaFlux::Kinesis::Vision::Kernels::prewitt_smooth = KernelSpec<3> { 1.0F, 1.0F, 1.0F }.normalize()
 
constexpr auto MayaFlux::Kinesis::Vision::Kernels::scharr_kx = KernelSpec<3> { -3.0F, 0.0F, 3.0F }
 
constexpr auto MayaFlux::Kinesis::Vision::Kernels::scharr_ky = KernelSpec<3> { -3.0F, 0.0F, 3.0F }
 
constexpr auto MayaFlux::Kinesis::Vision::Kernels::sobel_kx = KernelSpec<3> { -1.0F, 0.0F, 1.0F }
 
constexpr auto MayaFlux::Kinesis::Vision::Kernels::sobel_ky = KernelSpec<3> { -1.0F, 0.0F, 1.0F }
 
constexpr auto MayaFlux::Kinesis::Vision::Kernels::sobel_smooth = KernelSpec<3> { 1.0F, 2.0F, 1.0F }.normalize()
 

Detailed Description

Compile-time separable filter kernel definition and named kernel bank.

KernelSpec<N> is a constexpr wrapper around std::array<float, N> with chainable compile-time transforms. All methods return a new KernelSpec leaving the original unchanged.

Named constants at the bottom of this file cover the standard operators. Custom kernels can be constructed inline at any call site:

constexpr auto k = KernelSpec<5>{ 1.F, 4.F, 6.F, 4.F, 1.F }.normalize(); filter_separable(src, tmp, dst, w, h, k, k);

KernelSpec<N> converts implicitly to std::span<const float> so it can be passed directly to any filter function without an explicit cast.

Definition in file KernelSpec.hpp.