C++下使用open3d进行iss特征点提取
#include <string>
#include <Eigen>
#include <Open3D/Open3D.h>
using namespace open3d;
using namespace std;
int main(int argc, char* argv[]) {
//读取点云
std::shared_ptr<geometry::PointCloud> cloud(new geometry::PointCloud);
open3d::io::ReadPointCloud("C:/Users/a/Desktop/2.ply", *cloud);
auto iss_keypoints = std::make_shared<geometry::PointCloud>();
iss_keypoints = geometry::keypoint::ComputeISSKeypoints(*cloud,2,3,0.9,0.9,30);//iss特征点提取
utility::LogInfo("Detected {} keypoints",
iss_keypoints->points_.size());
// Visualize the results
cloud->PaintUniformColor(Eigen::Vector3d(0.5, 0.5, 0.5));
iss_keypoints->PaintUniformColor(Eigen::Vector3d(1.0, 0.75, 0.0));
visualization::DrawGeometries({ iss_keypoints }, "ISS", 1600, 900);
open3d::visualization::DrawGeometries({ cloud }, "visualization", 960, 900, 960, 100);
return 0;
}