MayaFlux 0.1.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 55 of file StructureIntrospection.cpp.

56{
57 if (!container) {
58 std::vector<Kakshya::DataDimension> dimensions;
59 dimensions.emplace_back(Kakshya::DataDimension::time(1));
60 return std::make_pair(std::move(dimensions), Kakshya::DataModality::UNKNOWN);
61 }
62
63 auto structure = container->get_structure();
64
65 auto [dimensions, modality] = infer_from_container(container);
66
67 if (!region.start_coordinates.empty() && !region.end_coordinates.empty() && region.end_coordinates[1] != container->get_frame_size()) {
68 std::vector<uint64_t> shape;
69 int size = static_cast<int>(region.end_coordinates[0] - region.start_coordinates[0]);
70 shape.push_back(std::abs(size) + 1);
71 shape.push_back(region.end_coordinates[1]);
72
73 if (auto region_modality = region.get_attribute<Kakshya::DataModality>("modality");
74 region_modality.has_value()) {
75
76 dimensions = Kakshya::DataDimension::create_dimensions(region_modality.value(), shape, structure.memory_layout);
77 modality = region_modality.value();
78 } else {
79 dimensions = Kakshya::DataDimension::create_dimensions(modality, shape, structure.memory_layout);
80 }
81 }
82
83 return { dimensions, modality };
84}
DataModality
Data modality types for cross-modal analysis.
Definition NDData.hpp:78
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(), 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: