40 #include <boost/circular_buffer.hpp>
43 #include <opencv2/core/core.hpp>
57 #include <Image/ByteImage.h>
66 #include <RobotAPI/interface/visualization/DebugDrawerInterface.h>
126 QPointer<QWidget> getWidget()
override;
129 return "VisionX.ImageMonitor";
133 return QIcon {
"://icons/image_monitor.svg"};
137 return QIcon {
"://icons/eye.svg"};
140 void loadSettings(QSettings* settings)
override;
141 void saveSettings(QSettings* settings)
override;
144 void onInitImageProcessor()
override;
145 void onConnectImageProcessor()
override;
146 void onExitImageProcessor()
override;
147 void process()
override;
157 return imageProviderInfo;
159 const ImageContainer& getBufferedImage(
unsigned int position,
unsigned int& realPosition);
162 return imageBuffer.size();
168 this->playing = playing;
172 this->writeImageBuffer = buffering;
175 void createSnapshot();
178 using Component::getIceManager;
187 void startRecording();
188 void stopRecording();
192 void imageProviderConnected(
bool connected);
193 void recordingBufferEmpty(
bool isEmpty);
194 void statisticsUpdated(
const QString& statisticsString);
197 void connectToProvider();
198 void disconnectFromProvider();
199 void updateStatistics();
203 void hideControls(
bool hide =
true);
207 QPointer<ImageMonitorWidget> widget;
214 unsigned int numberImages;
217 ImageProviderInterfacePrx imageProviderPrx;
224 bool writeImageBuffer;
228 boost::circular_buffer<ImageContainer > imageBuffer;
229 std::queue<std::vector<CByteImage*>> recordingBuffer;
230 std::recursive_mutex recordingBufferMutex;
231 bool writeRecordingBuffer =
false;
237 std::recursive_mutex imageMutex;
240 QPointer<QToolBar> customToolbar;
241 QAction* viewingModeAction;
245 std::vector<cv::Mat> outputBuffer;
246 std::vector<visionx::imrec::Recording> recorders;
248 std::map<float, std::vector<std::optional<armarx::DrawColor24Bit>>> depthToRgbLookUpTables;
252 QPointer<QWidget> getCustomTitlebarWidget(QWidget* parent)
override;
253 std::string getAbsoluteOutputPath();
254 void convertToHeatMapDepthImage(CByteImage* image);