MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ erode()

MAYAFLUX_API double MayaFlux::Kinesis::Discrete::erode ( std::span< const double >  window,
std::span< const double >  coefs 
)
noexcept

Minimum over the window of window[k] - coefs[k], the grayscale erosion.

Definition at line 391 of file Kernels.cpp.

392{
393 const size_t count = std::min(window.size(), coefs.size());
394 if (count == 0)
395 return 0.0;
396
397 double b0 = window[0] - coefs[0];
398 double b1 = b0;
399 double b2 = b0;
400 double b3 = b0;
401 size_t k = 1;
402 for (; k + 4 <= count; k += 4) {
403 b0 = std::min(b0, window[k] - coefs[k]);
404 b1 = std::min(b1, window[k + 1] - coefs[k + 1]);
405 b2 = std::min(b2, window[k + 2] - coefs[k + 2]);
406 b3 = std::min(b3, window[k + 3] - coefs[k + 3]);
407 }
408 for (; k < count; ++k)
409 b0 = std::min(b0, window[k] - coefs[k]);
410 return std::min(std::min(b0, b1), std::min(b2, b3));
411}
std::weak_ptr< Core::Window > window
Definition Picker.cpp:23
size_t count

References count, and window.