UserAssistedSegmenter.h
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * ArmarX is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  *
8  * ArmarX is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * @package SceneUnderstanding::ArmarXObjects::UserAssistedSegmenter
17  * @author Rainer Kartmann ( rainer dot kartmann at student dot kit dot edu )
18  * @date 2018
19  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20  * GNU General Public License
21  */
22 
23 #pragma once
24 
27 
29 #include <VisionX/interface/components/UserAssistedSegmenter.h>
30 
31 namespace visionx
32 {
33  /// UserAssistedSegmenterPropertyDefinitions
36  {
37  public:
39  };
40 
41  /**
42  * @defgroup Component-UserAssistedSegmenter UserAssistedSegmenter
43  * @ingroup VisionX-Components
44  *
45  * UserAssistedSegmenter is used to manually group segments of an over-
46  * segmentation (e.g. LCCP, Region-Growing) to new segments.
47  *
48  *
49  * @class UserAssistedSegmenter
50  * @ingroup Component-UserAssistedSegmenter
51  * @brief Brief description of class UserAssistedSegmenter.
52  *
53  * Detailed description of class UserAssistedSegmenter.
54  */
56  virtual public visionx::PointCloudProcessor,
57  virtual public visionx::UserAssistedSegmenterInterface
58  {
59  using PointL = pcl::PointXYZRGBL;
60  using PointCloudL = pcl::PointCloud<PointL>;
61  using PointCloudLPtr = PointCloudL::Ptr;
62 
63 
64  public:
65  /// @see armarx::ManagedIceObject::getDefaultName()
66  virtual std::string getDefaultName() const override;
67 
68  // UserAssistedSegmenterInterface interface
69  virtual void publishSegmentation(const visionx::ColoredLabeledPointCloud& pointCloud,
70  const Ice::Current& = Ice::emptyCurrent) override;
71 
73 
74 
75  protected:
76  /// @see visionx::PointCloudProcessor::onInitPointCloudProcessor()
77  virtual void onInitPointCloudProcessor() override;
78 
79  /// @see visionx::PointCloudProcessor::onConnectPointCloudProcessor()
80  virtual void onConnectPointCloudProcessor() override;
81 
82  /// @see visionx::PointCloudProcessor::onDisconnectPointCloudProcessor()
83  virtual void onDisconnectPointCloudProcessor() override;
84 
85  /// @see visionx::PointCloudProcessor::onExitPointCloudProcessor()
86  virtual void onExitPointCloudProcessor() override;
87 
88  /// @see visionx::PointCloudProcessor::process()
89  virtual void process() override;
90 
91 
92  private:
93  std::string resultPointCloudName;
94 
95  float publishFrequency;
96 
97  visionx::UserAssistedSegmenterListenerPrx updatesListener;
98 
99  PointCloudLPtr resultPointCloud;
100 
102 
103 
104  protected:
105  /// @see PropertyUser::createPropertyDefinitions()
107  };
108 } // namespace visionx
visionx
ArmarX headers.
Definition: OpenPoseStressTest.h:38
visionx::UserAssistedSegmenter::publishSegmentation
virtual void publishSegmentation(const visionx::ColoredLabeledPointCloud &pointCloud, const Ice::Current &=Ice::emptyCurrent) override
Definition: UserAssistedSegmenter.cpp:128
visionx::UserAssistedSegmenter::onConnectPointCloudProcessor
virtual void onConnectPointCloudProcessor() override
Definition: UserAssistedSegmenter.cpp:74
armarx::PropertyDefinitionContainer::prefix
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
Definition: PropertyDefinitionContainer.h:345
PeriodicTask.h
visionx::UserAssistedSegmenter::onDisconnectPointCloudProcessor
virtual void onDisconnectPointCloudProcessor() override
Definition: UserAssistedSegmenter.cpp:91
visionx::UserAssistedSegmenter::process
virtual void process() override
Definition: UserAssistedSegmenter.cpp:105
visionx::PointCloudProcessor
The PointCloudProcessor class provides an interface for access to PointCloudProviders via Ice and sha...
Definition: PointCloudProcessor.h:177
visionx::PointCloudProcessorPropertyDefinitions
Properties of PointCloudProcessor.
Definition: PointCloudProcessor.h:166
PointCloudProcessor.h
visionx::UserAssistedSegmenterPropertyDefinitions
UserAssistedSegmenterPropertyDefinitions.
Definition: UserAssistedSegmenter.h:34
Component.h
visionx::UserAssistedSegmenter::onExitPointCloudProcessor
virtual void onExitPointCloudProcessor() override
Definition: UserAssistedSegmenter.cpp:100
visionx::UserAssistedSegmenter
Brief description of class UserAssistedSegmenter.
Definition: UserAssistedSegmenter.h:55
IceUtil::Handle
Definition: forward_declarations.h:30
visionx::UserAssistedSegmenterPropertyDefinitions::UserAssistedSegmenterPropertyDefinitions
UserAssistedSegmenterPropertyDefinitions(std::string prefix)
Definition: UserAssistedSegmenter.cpp:30
visionx::UserAssistedSegmenter::createPropertyDefinitions
virtual armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
Definition: UserAssistedSegmenter.cpp:156
visionx::UserAssistedSegmenter::provideResultPointCloud
void provideResultPointCloud()
Definition: UserAssistedSegmenter.cpp:147
visionx::UserAssistedSegmenter::getDefaultName
virtual std::string getDefaultName() const override
Definition: UserAssistedSegmenter.cpp:57
visionx::UserAssistedSegmenter::onInitPointCloudProcessor
virtual void onInitPointCloudProcessor() override
Definition: UserAssistedSegmenter.cpp:63