Definition at line 773 of file VisionExtractor.cpp.
774{
777
778 const auto supplied = Kakshya::get_metadata_value<std::shared_ptr<Core::VKImage>>(
input.metadata,
"vision_image");
779 const bool has_image = supplied && *supplied;
780
781 if (!has_image && !
input.data) {
782 output.metadata["error"] = std::string("VisionExtractor: missing container");
783 return output;
784 }
785
786 const auto analysis = Kakshya::get_metadata_value<Kinesis::Vision::VisionAnalysis>(
787 input.metadata,
"vision_analysis");
788 if (!analysis) {
789 output.metadata["error"] = std::string("VisionExtractor: missing vision_analysis metadata");
790 return output;
791 }
792
793 const auto index = Kakshya::get_metadata_value<size_t>(
input.metadata,
"container_index").value_or(0);
796 output.metadata["error"] = std::string("VisionExtractor: could not resolve image from container");
797 return output;
798 }
799
800 const uint32_t w =
image->get_width();
801 const uint32_t
h =
image->get_height();
802
806 break;
808 output.metadata[
"vision_extraction"] =
sample(
image, *analysis, w,
h);
809 break;
812 break;
815 break;
818 break;
821 break;
824 break;
826 output.metadata[
"vision_extraction"] =
equalize(
image, *analysis, w,
h);
827 break;
830 break;
832 output.metadata[
"vision_extraction"] =
edges(
image, *analysis, w,
h);
833 break;
836 break;
838 output.metadata[
"vision_extraction"] =
annotate(
image, *analysis, w,
h);
839 break;
842 output.metadata["vision_extraction"] = *selected;
843 break;
844 }
845
846 return output;
847}
Core::GlobalInputConfig input
Datum< OutputType > output_type
std::unordered_map< std::string, std::any > metadata
Associated metadata.
References MayaFlux::Yantra::Annotate, annotate(), MayaFlux::Yantra::Crop, crop(), MayaFlux::Yantra::Crops, crops(), MayaFlux::Yantra::Edges, edges(), MayaFlux::Yantra::Equalize, equalize(), MayaFlux::Yantra::Expose, expose(), h, image, index, input, m_exposure_target, m_focus, m_mode, m_out_h, m_out_w, m_patch_h, m_patch_w, m_sample_radius, m_tile_h, m_tile_w, MayaFlux::Yantra::Datum< T >::metadata, motion_mask(), MayaFlux::Yantra::MotionMask, MayaFlux::Yantra::Patches, patches(), resolve_image(), MayaFlux::Yantra::Sample, sample(), sample_points(), sample_regions(), MayaFlux::Yantra::SamplePoints, MayaFlux::Yantra::SampleRegions, select_element(), MayaFlux::Yantra::SelectElement, MayaFlux::Yantra::Silhouettes, and silhouettes().
Referenced by VisionExtractor().