40 #include <boost/circular_buffer.hpp>
43 #include <opencv2/core/core.hpp>
58 #include <Image/ByteImage.h>
64 #include <RobotAPI/interface/visualization/DebugDrawerInterface.h>
127 QPointer<QWidget> getWidget()
override;
132 return "VisionX.ImageMonitor";
138 return QIcon{
"://icons/image_monitor.svg"};
144 return QIcon{
"://icons/eye.svg"};
147 void loadSettings(QSettings* settings)
override;
148 void saveSettings(QSettings* settings)
override;
151 void onInitImageProcessor()
override;
152 void onConnectImageProcessor()
override;
153 void onExitImageProcessor()
override;
154 void process()
override;
166 return imageProviderInfo;
169 const ImageContainer& getBufferedImage(
unsigned int position,
unsigned int& realPosition);
174 return imageBuffer.size();
181 this->playing = playing;
187 this->writeImageBuffer = buffering;
190 void createSnapshot();
193 using Component::getIceManager;
202 void startRecording();
203 void stopRecording();
207 void imageProviderConnected(
bool connected);
208 void recordingBufferEmpty(
bool isEmpty);
209 void statisticsUpdated(
const QString& statisticsString);
212 void connectToProvider();
213 void disconnectFromProvider();
214 void updateStatistics();
218 void hideControls(
bool hide =
true);
222 QPointer<ImageMonitorWidget> widget;
229 unsigned int numberImages;
232 ImageProviderInterfacePrx imageProviderPrx;
239 bool writeImageBuffer;
243 boost::circular_buffer<ImageContainer> imageBuffer;
244 std::queue<std::vector<CByteImage*>> recordingBuffer;
245 std::recursive_mutex recordingBufferMutex;
246 bool writeRecordingBuffer =
false;
252 std::recursive_mutex imageMutex;
255 QPointer<QToolBar> customToolbar;
256 QAction* viewingModeAction;
260 std::vector<cv::Mat> outputBuffer;
261 std::vector<visionx::imrec::Recording> recorders;
263 std::map<float, std::vector<std::optional<armarx::DrawColor24Bit>>> depthToRgbLookUpTables;
267 QPointer<QWidget> getCustomTitlebarWidget(QWidget* parent)
override;
268 std::string getAbsoluteOutputPath();
269 void convertToHeatMapDepthImage(CByteImage* image);