opencv_eigen.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
* @author Fabian Reister ( fabian dot reister at kit dot edu )
17
* @date 2021
18
* @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19
* GNU General Public License
20
*/
21
22
#pragma once
23
24
#include <vector>
25
26
#include <Eigen/Core>
27
28
#include <opencv2/core/types.hpp>
29
30
namespace
armarx::conversions
31
{
32
inline
cv::Point2f
33
eigen2cv
(
const
Eigen::Vector2f& pt)
34
{
35
return
{pt.x(), pt.y()};
36
}
37
38
template
<
typename
EigenT,
typename
CvT = decltype(eigen2cv(EigenT()))>
39
auto
40
eigen2cv
(
const
std::vector<EigenT>& points)
41
{
42
std::vector<CvT> v;
43
v.reserve(points.size());
44
45
std::transform(points.begin(),
46
points.end(),
47
std::back_inserter(v),
48
static_cast<
CvT (*)(
const
EigenT&)
>
(
eigen2cv
));
49
50
return
v;
51
}
52
53
inline
Eigen::Vector2f
54
cv2eigen
(
const
cv::Point2f& pt)
55
{
56
return
Eigen::Vector2f{pt.x, pt.y};
57
}
58
59
}
// namespace armarx::conversions
armarx::conversions
Definition
eigen.cpp:8
armarx::conversions::eigen2cv
cv::Point2f eigen2cv(const Eigen::Vector2f &pt)
Definition
opencv_eigen.h:33
armarx::conversions::cv2eigen
Eigen::Vector2f cv2eigen(const cv::Point2f &pt)
Definition
opencv_eigen.h:54
armarx
navigation
components
laser_scanner_feature_extraction
conversions
opencv_eigen.h
Generated by
1.13.2