|
@@ -0,0 +1,37 @@
|
|
|
|
+#include "nodes/base/base.hpp"
|
|
|
|
+#include "nodes/draw/drawNode.hpp"
|
|
|
|
+namespace Node
|
|
|
|
+{
|
|
|
|
+
|
|
|
|
+void DrawNode::work()
|
|
|
|
+{
|
|
|
|
+ printf("DrawNode %s\n", name_.c_str());
|
|
|
|
+ while (running_)
|
|
|
|
+ {
|
|
|
|
+ for (auto& input_buffer : input_buffers_)
|
|
|
|
+ {
|
|
|
|
+ std::shared_ptr<meta::MetaData> metaData;
|
|
|
|
+ if (!input_buffer.second->try_pop(metaData))
|
|
|
|
+ {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ printf("Node %s get data from %s\n", name_.c_str(), input_buffer.first.c_str());
|
|
|
|
+ // do something
|
|
|
|
+ cv::Mat image = metaData->image.clone();
|
|
|
|
+ for (auto& box : metaData->boxes)
|
|
|
|
+ {
|
|
|
|
+ cv::rectangle(image, cv::Point(box.left, box.top), cv::Point(box.right, box.bottom), cv::Scalar(0, 255, 0), 2);
|
|
|
|
+ cv::putText(image, box.label, cv::Point(box.left, box.top), cv::FONT_HERSHEY_SIMPLEX, 1, cv::Scalar(0, 255, 0), 2);
|
|
|
|
+ }
|
|
|
|
+ metaData->draw_image = image;
|
|
|
|
+ cv::imwrite("dtest.jpg", image);
|
|
|
|
+ for (auto& output_buffer : output_buffers_)
|
|
|
|
+ {
|
|
|
|
+ printf("Node %s push data to %s\n", name_.c_str(), output_buffer.first.c_str());
|
|
|
|
+ output_buffer.second->push(metaData);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+}
|