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
31namespace visionx
32{
33 /// UserAssistedSegmenterPropertyDefinitions
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
IceUtil::Handle< PeriodicTask< T > > pointer_type
Shared pointer type for convenience.
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
The PointCloudProcessor class provides an interface for access to PointCloudProviders via Ice and sha...
Brief description of class UserAssistedSegmenter.
virtual armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
virtual void onExitPointCloudProcessor() override
virtual void onConnectPointCloudProcessor() override
virtual void onDisconnectPointCloudProcessor() override
virtual void onInitPointCloudProcessor() override
virtual std::string getDefaultName() const override
virtual void publishSegmentation(const visionx::ColoredLabeledPointCloud &pointCloud, const Ice::Current &=Ice::emptyCurrent) override
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
ArmarX headers.