Quantcast

PFHRGB Registration Unrecognized type "pcl::PFHRGBSignature250"

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

PFHRGB Registration Unrecognized type "pcl::PFHRGBSignature250"

Julien
First of all, let me introduce you the project.
We're 4 students working on a 3D modelisation project for a History researcher in order to save historical sites from vanishing for ever.
This way we should be able to keep them as 3D objects.

In this context we must register pieces of sites (let's say rooms) for technical reasons. (We're using a Kinect v1)
In order to register multiple pieces of a room, we use pcl.
But we unsuccessfully reach this registration until now.

We used several methods but none with colors. We're trying to use PFH_RGB but we're stuck with a compilation issue, the pcl::PFHRGBSignature250 point type isn't recognized.
Although the other types from <pcl/point_types.h> are recognized.


We are using pcl 1.8.0 under windows with Microsoft Visual Studio 2015 (which generates TONS of project configuration problems that are solved).


Here is the part of code that doesn't work (compile, but i'm getting no error with code completion and the editor):

typedef pcl::PointXYZRGB PointColorT;
typedef pcl::PointCloud<PointColorT> PointCloudColor;
typedef pcl::PointNormal PointNormalT;
typedef pcl::PointCloud<PointNormalT> PointCloudNormals;
typedef pcl::PFHRGBSignature250 FeatureT;
typedef pcl::PointCloud<FeatureT> PointCloudFeatures;

#include <pcl/features/pfhrgb.h>
#include <pcl/features/pfh.h>

void pfh_rgb(PointCloudColor::Ptr cloud, PointCloudNormals::Ptr normals, PointCloudFeatures::Ptr res) {
        pcl::console::print_info("With point cloud : %d\n", cloud->size());

        // Setup the feature computation
        pcl::PFHRGBEstimation<PointColorT, PointNormalT, FeatureT> pfh_rgb_e;
        pcl::search::KdTree<PointColorT>::Ptr tree(new pcl::search::KdTree<PointColorT>);

        pfh_rgb_e.setInputCloud(cloud);
        pfh_rgb_e.setInputNormals(normals);

        // Ktree method
        pfh_rgb_e.setSearchMethod(tree);
        pfh_rgb_e.setKSearch(50);

        // Actually compute the VFH features
        pfh_rgb_e.compute(*res);

        pcl::console::print_info("With point cloud : %d\n", res->size());
}


Here is the error i'm getting :
Error LNK2001 unresolved extern symbol "protected: virtual void __cdecl pcl::PFHRGBEstimation<struct pcl::PointXYZRGB,struct pcl::PointNormal,struct pcl::PFHRGBSignature250>::computeFeature(class pcl::PointCloud<struct pcl::PFHRGBSignature250> &)" (?computeFeature@?$PFHRGBEstimation@UPointXYZRGB@pcl@@UPointNormal@2@UPFHRGBSignature250@2@@pcl@@MEAAXAEAV?$PointCloud@UPFHRGBSignature250@pcl@@@2@@Z) TestPCL C:\some\hidden\path\to\my\project\TestPCL\pfh_rgb.obj 1

nb :  the file is named "pfh_rgb.cpp"


I've seen some problems that other users got about pfh_rgb but never with THIS error.

The code i've got is taken from this git repo:
https://github.com/daviddoria/Examples/blob/master/c%2B%2B/PCL/Descriptors/PFHRGBEstimation/PFHRGBEstimation.cpp
My code is nearly the same. I've just a different code structure.

One of the other student has nearly the same error with SHOTColorEstimation point type (pcl::SHOT1344 with the same weird error).

Can any of you kind guys (who read this loooong post with much courage) can help us ?
Loading...