Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/mvgkit/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
add_subdirectory(common)
add_subdirectory(estimation)
add_subdirectory(features)
7 changes: 7 additions & 0 deletions src/mvgkit/features/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
file(GLOB MVGKIT_FEATURES_HEADER_FILES *.h)
file(GLOB MVGKIT_FEATURES_SOURCE_FILES *.cc)

add_library(mvgkit_features SHARED ${MVGKIT_FEATURES_HEADER_FILES}
${MVGKIT_FEATURES_SOURCE_FILES})

target_link_libraries(mvgkit_features ${OPENCV2_LIBRARIES} Eigen3::Eigen)
7 changes: 7 additions & 0 deletions src/mvgkit/features/features.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#include "features.h"

namespace mvgkit {
namespace features {

}
}
22 changes: 22 additions & 0 deletions src/mvgkit/features/features.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#pragma once

#include <Eigen/Dense>
#include <memory>
#include <opencv2/features2d.hpp>

namespace mvgkit {
namespace features {

class KeyPoint;

class ImageFeature
{
private:
uint32_t _id;
cv::KeyPoint _cvKp;
cv::Mat _cvDescriptor;
std::weak_ptr<KeyPoint> _pKeyPoint;
};

} // namespace features
} // namespace mvgkit
1 change: 1 addition & 0 deletions src/mvgkit/features/keypoint.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "keypoint.h"
26 changes: 26 additions & 0 deletions src/mvgkit/features/keypoint.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#include "../common/eigen.h"
#include "features.h"
#include <Eigen/Dense>

namespace mvgkit {
namespace features {

class KeyPoint
{
public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW

const std::vector<ImageFeature>& GetImageFeatures() const { return _imageFeatures; }
const Eigen::Vector3d& GetPosition() const { return _position; }
const Eigen::Vector3i& GetColor() const { return _color; }
const uint32_t GetId() const { return _id; }

private:
uint32_t _id; ///< Unique ID of this point.
Eigen::Vector3d _position; ///< Estimated 3D position of this point.
Eigen::Vector3i _color; ///< RGB color of the this point.
std::vector<ImageFeature> _imageFeatures; ///< sequence of observation of this 3D point.
};

} // namespace features
} // namespace mvgkit
Empty file added src/mvgkit/features/matcher.cc
Empty file.
Empty file added src/mvgkit/features/matcher.h
Empty file.
7 changes: 7 additions & 0 deletions src/mvgkit/features/orb.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#include "orb.h"

namespace mvgkit {
namespace features {

} // namespace features
} // namespace mvgkit
16 changes: 16 additions & 0 deletions src/mvgkit/features/orb.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#pragma once

#include <opencv2/features2d.hpp>

namespace mvgkit {
namespace features {

class ORB
{
public:
ORB();
virtual ~ORB();
};

} // namespace features
} // namespace mvgkit