40#include <boost/circular_buffer.hpp>
43#include <opencv2/core/core.hpp>
58#include <Image/ByteImage.h>
64#include <RobotAPI/interface/visualization/DebugDrawerInterface.h>
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();
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;
242 IceUtil::Time lastBufferTime;
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;
258 IceUtil::Time timeProvided, timeReceived;
260 std::vector<cv::Mat> outputBuffer;
261 std::vector<visionx::imrec::Recording> recorders;
263 std::map<float, std::vector<std::optional<armarx::DrawColor24Bit>>> depthToRgbLookUpTables;
#define ARMARXCOMPONENT_IMPORT_EXPORT
IceUtil::Handle< PeriodicTask< T > > pointer_type
Shared pointer type for convenience.
This filters allows to filter with an unstable frequency by considering only the valus in a specified...
The FPSCounter class provides methods for calculating the frames per second (FPS) count in periodic t...
ImageMonitorProperties brief one line description.
QStringList recordingMethods
CompressionType compressionType
std::filesystem::path outputDirectory
std::set< size_t > imagesToShow
The ImageProcessor class provides an interface for access to ImageProviders via Ice and shared memory...
The ImageTransferStats class provides information on the connection between ImageProvider and ImagePr...
std::shared_ptr< CByteImage > CByteImagePtr
std::vector< CByteImagePtr > ImageContainer