Sigurohuni që keni një version funksional të MediaPipe Framework. Shihni udhëzimet e instalimit .
Për të drejtuar shembullin
hello world:$ git clone https://github.com/google/mediapipe.git $ cd mediapipe $ export GLOG_logtostderr=1 # Need bazel flag 'MEDIAPIPE_DISABLE_GPU=1' as desktop GPU is not supported currently. $ bazel run --define MEDIAPIPE_DISABLE_GPU=1 \ mediapipe/examples/desktop/hello_world:hello_world # It should print 10 rows of Hello World! # Hello World! # Hello World! # Hello World! # Hello World! # Hello World! # Hello World! # Hello World! # Hello World! # Hello World! # Hello World!Shembulli
hello worldpërdor një grafik të thjeshtë MediaPipe në funksioninPrintHelloWorld(), të përcaktuar në protokollinCalculatorGraphConfig.absl::Status PrintHelloWorld() { // Configures a simple graph, which concatenates 2 PassThroughCalculators. CalculatorGraphConfig config = ParseTextProtoOrDie<CalculatorGraphConfig>(R"( input_stream: "in" output_stream: "out" node { calculator: "PassThroughCalculator" input_stream: "in" output_stream: "out1" } node { calculator: "PassThroughCalculator" input_stream: "out1" output_stream: "out" } )");Ju mund ta vizualizoni këtë grafik duke përdorur MediaPipe Visualizer duke ngjitur përmbajtjen CalculatorGraphConfig më poshtë në vizualizues. Shihni këtu për ndihmë në vizualizuesin.
input_stream: "in" output_stream: "out" node { calculator: "PassThroughCalculator" input_stream: "in" output_stream: "out1" } node { calculator: "PassThroughCalculator" input_stream: "out1" output_stream: "out" }Ky grafik përbëhet nga 1 rrymë hyrëse grafiku (
in) dhe 1 rrjedhë dalëse grafiku (out) dhe 2PassThroughCalculatortë lidhur në mënyrë serike.
Përpara ekzekutimit të grafikut, një objekt
OutputStreamPollerlidhet me rrymën dalëse në mënyrë që të marrë më vonë daljen e grafikut dhe fillon ekzekutimi i grafikut meStartRun.CalculatorGraph graph; MP_RETURN_IF_ERROR(graph.Initialize(config)); MP_ASSIGN_OR_RETURN(OutputStreamPoller poller, graph.AddOutputStreamPoller("out")); MP_RETURN_IF_ERROR(graph.StartRun({}));Më pas, shembulli krijon 10 pako (çdo paketë përmban një varg "Hello World!" me vlera të vulës kohore që variojnë nga 0, 1, ... 9) duke përdorur funksionin
MakePacket, shton secilën pako në grafik përmes rrjedhësindhe në fund mbyll rrjedhën hyrëse për të përfunduar ekzekutimin e grafikut.for (int i = 0; i < 10; ++i) { MP_RETURN_IF_ERROR(graph.AddPacketToInputStream("in", MakePacket<std::string>("Hello World!").At(Timestamp(i)))); } MP_RETURN_IF_ERROR(graph.CloseInputStream("in"));Nëpërmjet objektit
OutputStreamPollershembulli më pas merr të gjitha 10 paketat nga rrjedha e daljes, merr përmbajtjen e vargut nga çdo paketë dhe e printon atë në regjistrin e daljes.mediapipe::Packet packet; while (poller.Next(&packet)) { LOG(INFO) << packet.Get<string>(); }
Përshëndetje Botë! në C++
Përveçse siç përcaktohet ndryshe, përmbajtja e kësaj faqeje është e licencuar sipas licencës së atribuimit 4.0 të Creative Commons dhe kampionët e kodit janë licencuar sipas licencës së Apache 2.0. Për detaje, shiko Politikat e sajtit të Google Developers. Java është një markë tregtare e regjistruar e Oracle dhe/ose filialeve të tij.
Përditësimi i fundit: 2025-07-25 UTC.