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

◆ infer_from_region()

std::pair< std::vector< Kakshya::DataDimension >, Kakshya::DataModality > MayaFlux::Yantra::infer_from_region ( const Kakshya::Region region,
const std::shared_ptr< Kakshya::SignalSourceContainer > &  container 
)

Infer structure from Region (placeholder since regions are markers)

Definition at line 54 of file StructureIntrospection.cpp.

55{
56 if (!container) {
57 std::vector<Kakshya::DataDimension> dimensions;
58 dimensions.emplace_back(Kakshya::DataDimension::time(1));
59 return std::make_pair(std::move(dimensions), Kakshya::DataModality::UNKNOWN);
60 }
61
62 auto structure = container->get_structure();
63
64 auto [dimensions, modality] = infer_from_container(container);
65
66 if (!region.start_coordinates.empty() && !region.end_coordinates.empty() && region.end_coordinates[1] != container->get_frame_size()) {
67 std::vector<uint64_t> shape;
68 int size = static_cast<int>(region.end_coordinates[0] - region.start_coordinates[0]);
69 shape.push_back(std::abs(size) + 1);
70 shape.push_back(region.end_coordinates[1]);
71
72 if (auto region_modality = region.get_attribute<Kakshya::DataModality>("modality");
73 region_modality.has_value()) {
74
75 dimensions = Kakshya::DataDimension::create_dimensions(region_modality.value(), shape, structure.memory_layout);
76 modality = region_modality.value();
77 } else {
78 dimensions = Kakshya::DataDimension::create_dimensions(modality, shape, structure.memory_layout);
79 }
80 }
81
82 return { dimensions, modality };
83}
Range size
DataModality
Data modality types for cross-modal analysis.
Definition NDData.hpp:81
std::optional< T > get_attribute(const std::string &key) const
Get an attribute value by key, with type conversion support.
Definition Region.hpp:324
std::vector< uint64_t > end_coordinates
Ending frame index (inclusive)
Definition Region.hpp:72
std::vector< uint64_t > start_coordinates
Starting frame index (inclusive)
Definition Region.hpp:69

References MayaFlux::Kakshya::DataDimension::create_dimensions(), MayaFlux::Kakshya::Region::end_coordinates, MayaFlux::Kakshya::Region::get_attribute(), infer_from_container(), size, MayaFlux::Kakshya::Region::start_coordinates, MayaFlux::Kakshya::DataDimension::time(), and MayaFlux::Kakshya::UNKNOWN.

Referenced by infer_from_region_group(), infer_from_segments(), and infer_structure().

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