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

◆ sample()

Kinesis::Vision::FieldSample MayaFlux::Yantra::VisionExtractor::sample ( const std::shared_ptr< Core::VKImage > &  source,
const Kinesis::Vision::VisionAnalysis &  analysis,
uint32_t  source_w,
uint32_t  source_h 
)

Mean, min and max over the focused element or track/keypoint bounds.

Definition at line 483 of file VisionExtractor.cpp.

487{
488 const auto region = region_for_analysis(analysis);
489 if (!region)
490 return {};
491
492 const auto rect = pixel_rect(*region, source_w, source_h);
493
494 auto& ctx = reduce_context();
495 use_shader(ctx, "region_sample_batch.comp.spv", k_wg_reduce, sizeof(BatchCountPC));
496 ctx.stage_image(source);
497 ctx.set_binding_data(3, std::span<const uint32_t>(rect));
498 ctx.set_push_constants(BatchCountPC { .count = 1 });
499
500 const auto raw = dispatch_reduce(ctx, 256, 3 * sizeof(glm::vec4));
501 return raw.size() >= 12 ? field_sample(raw.data()) : Kinesis::Vision::FieldSample {};
502}
TextureExecutionContext & reduce_context()
std::optional< Kinesis::Vision::BoundingBox > region_for_analysis(const Kinesis::Vision::VisionAnalysis &analysis)
@ Kinesis
General mathematical and physics algorithns.

References reduce_context(), and region_for_analysis().

Referenced by run_operation().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: