PointCloudLibrary / pcl

Point Cloud Library (PCL)
https://pointclouds.org/
Other
10.03k stars 4.62k forks source link

3D Object Recognition Using Global Descriptor (Ensemble of Shape Functions) via PCL #5770

Open muneeb127 opened 1 year ago

muneeb127 commented 1 year ago

I am developing a system for 3D object recognition using the point cloud library. I want to apply an ESF descriptor to a data set that I have stored locally. I am giving the folder containing data to the program as an argument. I am attaching the code for reference.


#include <pcl/io/pcd_io.h>
#include <pcl/features/esf.h>
#include <pcl/visualization/histogram_visualizer.h>
#include <pcl/visualization/pcl_plotter.h>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
#include <pcl/console/print.h>
#include <boost/filesystem.hpp>
#include <boost/range/iterator_range.hpp>
#include <flann/flann.h>
#include <fstream>

typedef std::pair<std::string, std::vector<float> > esf_model;

void calculateESFDescriptor(const boost::filesystem::path &path){
    pcl::console::print_highlight ("Executing function: calculateESFDescriptor() \n");

    // const boost::filesystem::path &path = base_dir/it->path().filename();

    // Cloud for storing the object.
    pcl::PointCloud<pcl::PointXYZ>::Ptr object(new pcl::PointCloud<pcl::PointXYZ>);
    // Object for storing the ESF descriptor.
    pcl::PointCloud<pcl::ESFSignature640>::Ptr descriptor(new pcl::PointCloud<pcl::ESFSignature640>);

    // Note: you should have performed preprocessing to cluster out the object
    // from the cloud, and save it to this individual file.

    // Read a PCD file from disk.
    if (pcl::io::loadPCDFile<pcl::PointXYZ>(path.string(), *object) != 0)
    {
        pcl::console::print_highlight ("Unable to read .pcd file from the directory\n");
        // return -1;
    }

    // ESF estimation object.
    pcl::ESFEstimation<pcl::PointXYZ, pcl::ESFSignature640> esf;
    esf.setInputCloud(object);

    esf.compute(*descriptor);

    // Writing esf description file to disk
    std::string output_file_name = path.string().substr(0, path.string().find_last_of('.')) + "_esf.pcd";
    pcl::io::savePCDFileASCII (output_file_name, *descriptor);
    std::cerr << "Saved data points to " << output_file_name << std::endl;
    // return (0);
}

/** \brief Load a set of ESF features that will act as the model (training data)
  * \param argc the number of arguments (pass from main ())
  * \param argv the actual command line arguments (pass from main ())
  * \param extension the file extension containing the ESF features
  */
void traverseDirectory(const boost::filesystem::path &base_dir, const std::string &extension){
    pcl::console::print_highlight ("Executing function: traverseDirectory() \n");

    if (!boost::filesystem::exists(base_dir) && !boost::filesystem::is_directory(base_dir)){
        pcl::console::print_highlight ("Quitting as the directory does not exists.\n");
        return;
    }

    int i = 0;

    for (boost::filesystem::directory_iterator it (base_dir); it != boost::filesystem::directory_iterator (); ++it)
    {
        if (boost::filesystem::is_directory(it->status()))
        {
            std::stringstream ss;
            ss << it->path ();
            pcl::console::print_highlight ("Loading %s \n", ss.str().c_str());
            traverseDirectory(it->path(), extension);
        }   

        // Calculate ESF Descriptor for each file
        if (boost::filesystem::is_regular_file(it->status()) && boost::filesystem::extension(it->path())==extension)
        {
            calculateESFDescriptor(base_dir/it->path().filename());
            pcl::console::print_highlight ("Loop execution: %d\n", i++);
        }
        // continue;
    }
}

int main(int argc, char** argv)
{   
    if (argc < 2)
    {
        PCL_ERROR ("Need at least two parameters! Syntax is: %s [model_directory] [options]\n", argv[0]);
        return (-1);
    }   

    std::string extension(".pcd");
    transform(extension.begin(), extension.end(), extension.begin(), (int(*)(int))tolower);

    // std::vector<esf_model> models;

    // Traversing directory to find all .pcd files and applying esf descriptor to each file
    traverseDirectory(argv[1], extension);
    return (0);
}

The problem is that the function calculateESFDescriptor() runs only once and then the program shuts down without any error, whereas I have multiple .pcd files in the directory and the function should execute for all the files in the directory. I want to calculate the ESF descriptor for all the files to compare them with user-given input at a later stage to calculate the accuracy. I cannot debug where I am making the mistake due to which the program cannot execute for all the files in the directory. The program runs for the whole directory when I comment out the following line. calculateESFDescriptor(base_dir/it->path().filename());

The question is if it is possible to compute descriptor for the whole directory at once or do I have to give each file as input and run the program for each file separately?

mvieth commented 1 year ago

@muneeb127 I would change calculateESFDescriptor so that it receives a const std::string& filename instead of a boost::filesystem::path. Then, as a test, call it multiple times from main with fixed file names (change the file names to match actual files on your computer):

int main() {
  calculateESFDescriptor("/path/to/file/one.pcd");
  calculateESFDescriptor("/path/to/file/two.pcd");
  calculateESFDescriptor("/path/to/file/three.pcd");
  calculateESFDescriptor("/path/to/file/four.pcd");
}

Does this process the given files correctly?

muneeb127 commented 1 year ago

Hey, I am still facing the same situation when I give the file name as input as a string and directly call the function calculateESFDescriptor(). Following is the new code as per your suggestion.

#include <pcl/io/pcd_io.h>
#include <pcl/features/esf.h>
#include <pcl/visualization/histogram_visualizer.h>
#include <pcl/visualization/pcl_plotter.h>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
#include <pcl/console/print.h>
#include <boost/filesystem.hpp>
#include <boost/range/iterator_range.hpp>
#include <flann/flann.h>
#include <fstream>
#include <string>

bool calculateESFDescriptor(const std::string& filename){

    // Cloud for storing the object.
    pcl::PointCloud<pcl::PointXYZ>::Ptr object(new pcl::PointCloud<pcl::PointXYZ>);
    // Object for storing the ESF descriptor.
    pcl::PointCloud<pcl::ESFSignature640>::Ptr descriptor(new pcl::PointCloud<pcl::ESFSignature640>);

    // Read a PCD file from disk.
    if (pcl::io::loadPCDFile<pcl::PointXYZ>(filename.c_str(), *object) != 0)
    {
        pcl::console::print_highlight ("Unable to read .pcd file from the directory\n");
        // return -1;
        return(false);
    }

    try{
        pcl::ESFEstimation<pcl::PointXYZ, pcl::ESFSignature640> esf;
        esf.setInputCloud(object);
        esf.compute(*descriptor);
        // Writing esf description file to disk
        std::string output_file_name = filename.substr(0, filename.find_last_of('.')) + "_esf.pcd";
        pcl::io::savePCDFileASCII (output_file_name, *descriptor);
        std::cerr << "Saved data points to " << output_file_name << std::endl;
        return (true);
    }
    catch (const pcl::InvalidConversionException&)
        {
              pcl::console::print_highlight ("Unable to compute....");
              return (false);
        }
}

int main(int argc, char** argv)
{   
    if (argc < 2)
    {
        PCL_ERROR ("Need at least two parameters! Syntax is: %s [model_directory] [options]\n", argv[0]);
        return (-1);
    }   

    std::string extension(".pcd");
    transform(extension.begin(), extension.end(), extension.begin(), (int(*)(int))tolower);

    // std::vector<esf_model> models;

    // Traversing directory to find all .pcd files and applying esf descriptor to each file
    calculateESFDescriptor(".\\data\\000.580.67\\1258250240333_cluster_0_nxyz.pcd");
    calculateESFDescriptor(".\\data\\000.580.67\\1258250242333_cluster_0_nxyz.pcd");
    calculateESFDescriptor(".\\data\\000.580.67\\1258290249333_cluster_0_nxyz.pcd");
    calculateESFDescriptor(".\\data\\000.580.67\\1258570238333_cluster_0_nxyz.pcd");
    return (0);
}

Following is the output in the terminal. image

Still the same issue persist that the function is running for the first file only and then the program shutsdown without giving any error.

mvieth commented 1 year ago

@muneeb127 I tested the code from your last comment, only changing

calculateESFDescriptor("/home/mvieth/pcl/test/bun01.pcd");
calculateESFDescriptor("/home/mvieth/pcl/test/bun02.pcd");
calculateESFDescriptor("/home/mvieth/pcl/test/bun03.pcd");
calculateESFDescriptor("/home/mvieth/pcl/test/bun4.pcd");

and it printed

Saved data points to /home/mvieth/pcl/test/bun01_esf.pcd
Saved data points to /home/mvieth/pcl/test/bun02_esf.pcd
Saved data points to /home/mvieth/pcl/test/bun03_esf.pcd
Saved data points to /home/mvieth/pcl/test/bun4_esf.pcd

So it works as expected on my computer.

Can you try to find out, where exactly the program exits, either with a debugger or with std::cout prints? Does it return to main after running calculateESFDescriptor for the first time? Does it perhaps even enter calculateESFDescriptor for a second time, but exit inside the function for some reason?

muneeb127 commented 1 year ago

@mvieth Following are the specifications of my machine.

The program exits after saving the file to disk. It is not returning to main and entering the function the second time. If I am removing the functionality inside the function calculateESFDescriptor() and just printing a single statement in this function, the program is running as expected. See the code below for reference.

bool calculateESFDescriptor(const std::string& filename){
    pcl::console::print_highlight ("Filename: %s \n", filename.c_str());
    return (true);
}

The above program will run four times as expected.

mvieth commented 1 year ago

@muneeb127 Okay, if you have a minimal function that works, then you can add back the code piece by piece until it no longer works (that is, until it no longer runs four times as expected). For example, first add the loadPCDFile, if that works, add the ESF estimation, ... Please also post your CMakeLists.txt

muneeb127 commented 1 year ago

@mvieth The line which is making the difference is the esf.compute(*descriptor);. If I comment out this line, the code runs as expected and gives the following output: image

Following is my CMakeLists.txt

cmake_minimum_required(VERSION 3.5 FATAL_ERROR)

project(cluster_extraction)

find_package(PCL 1.2 REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

add_executable (cluster_extraction cluster_extraction.cpp)
target_link_libraries (cluster_extraction ${PCL_LIBRARIES})

add_executable (cloud_viewer cloud_viewer.cpp)
target_link_libraries (cloud_viewer ${PCL_LIBRARIES})

add_executable (esf_estimation esf_estimation.cpp)
target_link_libraries (esf_estimation ${PCL_LIBRARIES} )

add_executable (esf2 esf2.cpp)
target_link_libraries (esf2 ${PCL_LIBRARIES} )

add_executable (read_file read_file.cpp)
target_link_libraries (read_file ${PCL_LIBRARIES} )

The problem lies somewhere in the computation of the esf descriptor, which just stops the program after running for once.

mvieth commented 1 year ago

@muneeb127 Can you put the ESFEstimation object into an extra scope, like this:

{
  pcl::ESFEstimation<pcl::PointXYZ, pcl::ESFSignature640> esf;
  esf.setInputCloud(object);
  esf.compute(*descriptor);
}
std::cout << "ESFEstimation object destroyed" << std::endl;

I want to test whether the program exits when that object is destroyed. Also, how large are your PCD files (how many megabytes)? How many points do they contain?

muneeb127 commented 1 year ago

@mvieth I am using the files from the dataset vfh_recognition_tutorial_data.tbz available in the tutorial . Normally, the file in this dataset contains around 3500 points and the average size of files is around 400 KB. I have also tried for other .pcd files, but the code also does not work for them.

Moreover, I tried changing the code as per your suggestion which is as follows:

bool calculateESFDescriptor(const std::string& filename){
    pcl::console::print_highlight ("Filename: %s \n", filename.c_str());

    // Cloud for storing the object.
    pcl::PointCloud<pcl::PointXYZ>::Ptr object(new pcl::PointCloud<pcl::PointXYZ>);
    // Object for storing the ESF descriptor.
    pcl::PointCloud<pcl::ESFSignature640>::Ptr descriptor(new pcl::PointCloud<pcl::ESFSignature640>);

    // Read a PCD file from disk.
    // if (pcl::io::loadPCDFile<pcl::PointXYZ>(path.string(), *object) != 0)
    if (pcl::io::loadPCDFile<pcl::PointXYZ>(filename.c_str(), *object) != 0)
    {
        pcl::console::print_highlight ("Unable to read .pcd file from the directory\n");
        // return -1;
        return(false);
    }

    // ESF estimation object.
    // pcl::ESFEstimation<pcl::PointXYZ, pcl::ESFSignature640> esf;

    try{
        pcl::ESFEstimation<pcl::PointXYZ, pcl::ESFSignature640> esf;
        esf.setInputCloud(object);
        esf.compute(*descriptor);
        // Writing esf description file to disk
        std::string output_file_name = filename.substr(0, filename.find_last_of('.')) + "_esf.pcd";
        pcl::io::savePCDFileASCII (output_file_name, *descriptor);
        std::cerr << "Saved data points to " << output_file_name << std::endl;
        // return (true);
    }
    catch (const pcl::InvalidConversionException&)
    {
        pcl::console::print_highlight ("Unable to compute....");
        return (false);
    }

    std::cerr << "ESFEstimation object destroyed" << std::endl;

    return (true);
    // return (0);
}

Following is the output: image

Still, nothing after the try block gets executed.

muneeb127 commented 1 year ago

@mvieth Is there any tutorial related to this where a particular descriptor is being calculated for multiple files or a complete dataset?

muneeb127 commented 1 year ago

@mvieth If I am calculating GRSD instead of ESF, the program is working as expected and giving four files as output. What could be the case for this? I think the problem lies somewhere in the computation of ESF in PCL.

#include <pcl/io/pcd_io.h>
#include <pcl/features/esf.h>
#include <pcl/features/normal_3d.h>
#include <pcl/features/grsd.h>

int
main(int argc, char** argv)
{

    std::vector<std::string> pointCloudFiles = {".\\data\\000.580.67\\1258250240333_cluster_0_nxyz.pcd", 
        ".\\data\\000.580.67\\1258250242333_cluster_0_nxyz.pcd", ".\\data\\000.580.67\\1258290249333_cluster_0_nxyz.pcd", 
        ".\\data\\000.580.67\\1258570238333_cluster_0_nxyz.pcd"};
    for (const std::string& fileName : pointCloudFiles)
    {
        // Read the point cloud data
        pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
        // Object for storing the normals.
        pcl::PointCloud<pcl::Normal>::Ptr normals(new pcl::PointCloud<pcl::Normal>);
        // Object for storing the GRSD descriptors for each point.
        pcl::PointCloud<pcl::GRSDSignature21>::Ptr descriptors(new pcl::PointCloud<pcl::GRSDSignature21>());

        // Read a PCD file from disk.
        if (pcl::io::loadPCDFile<pcl::PointXYZ>(fileName, *cloud) != 0)
        {
            return -1;
        }

        // Note: you would usually perform downsampling now. It has been omitted here
        // for simplicity, but be aware that computation can take a long time.

        // Estimate the normals.
        pcl::NormalEstimation<pcl::PointXYZ, pcl::Normal> normalEstimation;
        normalEstimation.setInputCloud(cloud);
        normalEstimation.setRadiusSearch(0.03);
        pcl::search::KdTree<pcl::PointXYZ>::Ptr kdtree(new pcl::search::KdTree<pcl::PointXYZ>);
        normalEstimation.setSearchMethod(kdtree);
        normalEstimation.compute(*normals);

        // GRSD estimation object.
        pcl::GRSDEstimation<pcl::PointXYZ, pcl::Normal, pcl::GRSDSignature21> grsd;
        grsd.setInputCloud(cloud);
        grsd.setInputNormals(normals);
        grsd.setSearchMethod(kdtree);
        // Search radius, to look for neighbors. Note: the value given here has to be
        // larger than the radius used to estimate the normals.
        grsd.setRadiusSearch(0.05);

        grsd.compute(*descriptors);

        // Store the computed descriptor (for demonstration purposes, you can choose a more suitable data structure or file storage)
        std::string output_file_name = fileName.substr(0, fileName.find_last_of('.')) + "_grsd.pcd";
        pcl::io::savePCDFileASCII(output_file_name, *descriptors);
        std::cerr << "Saved data points to " << output_file_name << std::endl;
    }
    return 0;
}

Output: image

mvieth commented 1 year ago

@muneeb127 My best guess is that one of the two members of ESFEstimation causes a crash when ESFEstimation is destroyed after the members are filled in esf.compute(...). Can you run your program with a debugger? Otherwise I can't really help you further.

muneeb127 commented 1 year ago

I ran the code in VS 2022 for debugging it and I found this. If I add a breakpoint on the line esf.compute() image

The program gives the following error in Memory.h file: image

After this error, the program does not continue and on stopping the execution, following result is printed in the cmd: image

mvieth commented 1 year ago

Can you post the command line options that are given to your compiler? For example, if you invoke make as make VERBOSE=1, it will print the exact compiler and linker commands. My guess is that you either have to activate or deactivate AVX/AVX2

muneeb127 commented 1 year ago

Normally, I use the following command flow for building the program:

Moreover, I tried running the code in the following way. The exception occurs again but the following error shows up on the cmd[pcl::ESFEstimation::compute] input_ is empty!. See the image for reference.

int main(int argc, char** argv)
{   
        // First Time
        const std::string& fileName = ".\\data\\000.580.67\\1258250240333_cluster_0_nxyz.pcd";
        // Read the point cloud data
        pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);

        // Object for storing the ESF descriptors for each point.
        pcl::PointCloud<pcl::ESFSignature640>::Ptr descriptors(new pcl::PointCloud<pcl::ESFSignature640>());

        // Read a PCD file from disk.
        if (pcl::io::loadPCDFile<pcl::PointXYZ>(fileName, *cloud) != 0)
        {
            return -1;
        }

        // ESF estimation object.
        pcl::ESFEstimation<pcl::PointXYZ, pcl::ESFSignature640> esf;
        esf.setInputCloud(cloud);

        esf.compute(*descriptors);

        std::string output_file_name = fileName.substr(0, fileName.find_last_of('.')) + "_esf.pcd";
        pcl::io::savePCDFileASCII(output_file_name, *descriptors);
        std::cerr << "Saved data points to " << output_file_name << std::endl;

               // Second Time
        const std::string& fileName2 = ".\\data\\000.580.67\\1258250242333_cluster_0_nxyz.pcd";
        // Read the point cloud data
        pcl::PointCloud<pcl::PointXYZ>::Ptr cloud2(new pcl::PointCloud<pcl::PointXYZ>);

        // Object for storing the ESF descriptors for each point.
        pcl::PointCloud<pcl::ESFSignature640>::Ptr descriptors2(new pcl::PointCloud<pcl::ESFSignature640>());

        // Read a PCD file from disk.
        if (pcl::io::loadPCDFile<pcl::PointXYZ>(fileName2, *cloud) != 0)
        {
            return -1;
        }

        // ESF estimation object.
        pcl::ESFEstimation<pcl::PointXYZ, pcl::ESFSignature640> esf2;
        esf2.setInputCloud(cloud2);

        esf2.compute(*descriptors2);

        std::string output_file_name2 = fileName2.substr(0, fileName2.find_last_of('.')) + "_esf.pcd";
        pcl::io::savePCDFileASCII(output_file_name2, *descriptors);
        std::cerr << "Saved data points to " << output_file_name2 << std::endl;
    //}

    return (0);
}

image [pcl::ESFEstimation::compute] input_ is empty! gets printed in the cmd after the computation of esf2 variable (second attempt).

Both files are being saved in the folder.

The exception occurs after stepping over the return(0) line. Following is the exception: image

mvieth commented 1 year ago

You pass cloud2 to esf2, but you don't fill cloud2. You fill cloud when reading the PCD file. That is why you see input_ is empty!

Then try cmake --build . --verbose please

larshg commented 1 year ago

Could also be the c++14 vs default c++ 17. Try force your own project to only c++ 14.

muneeb127 commented 1 year ago

I tried cmake --build . --verbose but nothing changed. The program crashes after the first file. Also, I added the following lines to CMakeLists.txt to force c++14, still nothing changed.

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

I do not know why the same code is working for GRSD but not for ESF.

mvieth commented 1 year ago

I tried cmake --build . --verbose but nothing changed. The program crashes after the first file.

@muneeb127 That was not meant to fix the problem, only to display the compiler and linker commands with all arguments. Do you see them? Otherwise try to delete all generated CMake files and build from scratch.

Also, I added the following lines to CMakeLists.txt to force c++14, still nothing changed.

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

Here also: please build from scratch to make sure that CMake uses these settings.

My best guess right now how you can fix the problem is adding SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX2"), but I can tell you more after I see your compiler/linker commands.

muneeb127 commented 1 year ago
Change Dir: 'C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/build'

Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Community/MSBuild/Current/Bin/amd64/MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n
MSBuild version 17.6.3+07e294721 for .NET Framework
Build started 7/29/2023 8:25:44 PM.

Project "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\ALL_BUILD.vcxproj" on node 1 (default targets).
Project "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\ALL_BUILD.vcxproj" (1) is building "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descripto 
r\build\ZERO_CHECK.vcxproj" (2) on node 1 (default targets).
PrepareForBuild:
  Creating directory "x64\Debug\ZERO_CHECK\".
  Creating directory "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\".
InitializeBuildStatus:
  Creating "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  1>Checking Build System
FinalizeBuildStatus:
  Deleting file "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
  Touching "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
Done Building Project "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\ZERO_CHECK.vcxproj" (default targets).

Project "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\ALL_BUILD.vcxproj" (1) is building "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descripto
r\build\cloud_viewer.vcxproj" (3) on node 1 (default targets).
PrepareForBuild:
  Creating directory "cloud_viewer.dir\Debug\".
  Creating directory "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\Debug\".
  Creating directory "cloud_viewer.dir\Debug\cloud_viewer.tlog\".
InitializeBuildStatus:
  Creating "cloud_viewer.dir\Debug\cloud_viewer.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  Building Custom Rule C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/CMakeLists.txt
ClCompile:
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX64\x64\CL.exe /c /Zi /nologo /W3 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D  
  _WINDOWS /D __SSE4_2__ /D __SSE4_1__ /D __SSSE3__ /D __SSE3__ /D __SSE2__ /D __SSE__ /D BOOST_ALL_NO_LIB /D BOOST_SYSTEM_NO_LIB /D BOOST_FILESYSTEM_NO_LIB /D BOOST_ATOMIC_NO_LIB / 
  D BOOST_IOSTREAMS_NO_LIB /D BOOST_BZIP2_NO_LIB /D BOOST_ZLIB_NO_LIB /D BOOST_SERIALIZATION_NO_LIB /D kiss_fft_scalar=double /D KISSFFT_DLL_IMPORT=1 /D "CMAKE_INTDIR=\"Debug\"" /Gm 
  - /EHsc /RTC1 /MDd /GS /arch:AVX2 /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /std:c++14 /Fo"cloud_viewer.dir\Debug\\" /Fd"cloud_viewer.dir\Debug\vc143.pdb" /external:W0 / 
  Gd /TP /errorReport:queue  /external:I "C:/Program Files/PCL 1.13.1/include/pcl-1.13" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/Eigen/eigen3" /external:I "C:/Program Files 
  /PCL 1.13.1/3rdParty/Boost/include/boost-1_82" /external:I "C:/Program Files/OpenNI2/Include" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2" /external:I "C 
  :/Program Files/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2/vtknlohmannjson/include" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2/vtkfreetype/include" /extern 
  al:I "C:/Program Files/PCL 1.13.1/3rdParty/FLANN/include" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/Qhull/include" "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF  
  Descriptor\cloud_viewer.cpp"
  cloud_viewer.cpp
Link:
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX64\x64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\ 
  4 - ESF Descriptor\build\Debug\cloud_viewer.exe" /INCREMENTAL /ILK:"cloud_viewer.dir\Debug\cloud_viewer.ilk" /NOLOGO /LIBPATH:"C:/Program Files/PCL 1.13.1/lib" /LIBPATH:"C:/Progra 
  m Files/PCL 1.13.1/lib/Debug" "C:\Program Files\PCL 1.13.1\lib\pcl_surfaced.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_keypointsd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_tracking 
  d.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_recognitiond.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_stereod.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_outofcored.lib" "C:\Program Fi 
  les\PCL 1.13.1\lib\pcl_peopled.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_system-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libbo 
  ost_filesystem-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_iostreams-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\l 
  ib\libboost_serialization-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\OpenNI2\Lib\OpenNI2.lib" "C:\Program Files\PCL 1.13.1\3rdParty\FLANN\lib\flann_cpp_s.lib" "C:\Program Files\P 
  CL 1.13.1\lib\pcl_registrationd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_segmentationd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_featuresd.lib" "C:\Program Files\PCL 1.13.1\lib\p 
  cl_filtersd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_sample_consensusd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_mld.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_visualizationd.lib" 
   "C:\Program Files\PCL 1.13.1\lib\pcl_searchd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_kdtreed.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_iod.lib" "C:\Program Files\PCL 1.13.1\lib 
  \pcl_octreed.lib" "C:\Program Files\OpenNI2\Lib\OpenNI2.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkChartsCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\ 
  vtkInteractionImage-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOGeometry-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOPLY-9.2-gd.lib" "C:\Prog 
  ram Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingLOD-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkViewsContext2D-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty 
  \VTK\lib\vtkViewsCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkInteractionWidgets-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersModeling- 
  9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkInteractionStyle-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersExtraction-9.2-gd.lib" "C:\Progra 
  m Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOLegacy-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRe 
  nderingAnnotation-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOImage-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingContextOpenGL2-9.2-gd. 
  lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingContext2D-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingFreeType-9.2-gd.lib" "C:\Program Fil 
  es\PCL 1.13.1\3rdParty\VTK\lib\vtkfreetype-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkzlib-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRendering 
  OpenGL2-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingHyperTreeGrid-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkImagingSources-9.2-gd.lib" 
   "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkImagingCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingUI-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rd 
  Party\VTK\lib\vtkRenderingCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonColor-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersGeometr 
  y-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersSources-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersGeneral-9.2-gd.lib" "C:\Program F 
  iles\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonComputationalGeometry-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3 
  rdParty\VTK\lib\vtkCommonExecutionModel-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonDataModel-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkC 
  ommonMisc-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonTransforms-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonMath-9.2-gd.lib" "C:\Pro 
  gram Files\PCL 1.13.1\3rdParty\VTK\lib\vtkkissfft-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib 
  \vtksys-9.2-gd.lib" ws2_32.lib dbghelp.lib psapi.lib "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkglew-9.2-gd.lib" opengl32.lib "C:\Program Files\PCL 1.13.1\lib\pcl_commond.li 
  b" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_system-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_filesystem-vc143-mt-gd-x64-1_ 
  82.lib" bcrypt.lib synchronization.lib "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_atomic-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\li 
  bboost_iostreams-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_bzip2-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib 
  \libboost_zlib-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_serialization-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Qhu 
  ll\lib\qhullstatic_rd.lib" kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asIn 
  voker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/build/Debug/cloud_viewer.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 / 
  DYNAMICBASE /NXCOMPAT /IMPLIB:"C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/build/Debug/cloud_viewer.lib" /MACHINE:X64  /machine:x64 cloud_viewer.dir\Debug\cl 
  oud_viewer.obj
  cloud_viewer.vcxproj -> C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\Debug\cloud_viewer.exe
FinalizeBuildStatus:
  Deleting file "cloud_viewer.dir\Debug\cloud_viewer.tlog\unsuccessfulbuild".
  Touching "cloud_viewer.dir\Debug\cloud_viewer.tlog\cloud_viewer.lastbuildstate".
Done Building Project "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\cloud_viewer.vcxproj" (default targets).

Project "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\ALL_BUILD.vcxproj" (1) is building "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descripto
r\build\cluster_extraction.vcxproj" (4) on node 1 (default targets).
PrepareForBuild:
  Creating directory "cluster_extraction.dir\Debug\".
  Creating directory "cluster_extraction.dir\Debug\cluster_.EA38C2EA.tlog\".
InitializeBuildStatus:
  Creating "cluster_extraction.dir\Debug\cluster_.EA38C2EA.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  Building Custom Rule C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/CMakeLists.txt
ClCompile:
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX64\x64\CL.exe /c /Zi /nologo /W3 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D  
  _WINDOWS /D __SSE4_2__ /D __SSE4_1__ /D __SSSE3__ /D __SSE3__ /D __SSE2__ /D __SSE__ /D BOOST_ALL_NO_LIB /D BOOST_SYSTEM_NO_LIB /D BOOST_FILESYSTEM_NO_LIB /D BOOST_ATOMIC_NO_LIB / 
  D BOOST_IOSTREAMS_NO_LIB /D BOOST_BZIP2_NO_LIB /D BOOST_ZLIB_NO_LIB /D BOOST_SERIALIZATION_NO_LIB /D kiss_fft_scalar=double /D KISSFFT_DLL_IMPORT=1 /D "CMAKE_INTDIR=\"Debug\"" /Gm 
  - /EHsc /RTC1 /MDd /GS /arch:AVX2 /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /std:c++14 /Fo"cluster_extraction.dir\Debug\\" /Fd"cluster_extraction.dir\Debug\vc143.pdb" /e 
  xternal:W0 /Gd /TP /errorReport:queue  /external:I "C:/Program Files/PCL 1.13.1/include/pcl-1.13" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/Eigen/eigen3" /external:I "C:/P 
  rogram Files/PCL 1.13.1/3rdParty/Boost/include/boost-1_82" /external:I "C:/Program Files/OpenNI2/Include" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2" /e 
  xternal:I "C:/Program Files/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2/vtknlohmannjson/include" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2/vtkfreetype/incl 
  ude" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/FLANN/include" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/Qhull/include" "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisat 
  ion\4 - ESF Descriptor\cluster_extraction.cpp"
  cluster_extraction.cpp
Link:
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX64\x64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\ 
  4 - ESF Descriptor\build\Debug\cluster_extraction.exe" /INCREMENTAL /ILK:"cluster_extraction.dir\Debug\cluster_extraction.ilk" /NOLOGO /LIBPATH:"C:/Program Files/PCL 1.13.1/lib" / 
  LIBPATH:"C:/Program Files/PCL 1.13.1/lib/Debug" "C:\Program Files\PCL 1.13.1\lib\pcl_surfaced.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_keypointsd.lib" "C:\Program Files\PCL 1.13. 
  1\lib\pcl_trackingd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_recognitiond.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_stereod.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_outofcored.l 
  ib" "C:\Program Files\PCL 1.13.1\lib\pcl_peopled.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_system-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdPar 
  ty\Boost\lib\libboost_filesystem-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_iostreams-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13. 
  1\3rdParty\Boost\lib\libboost_serialization-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\OpenNI2\Lib\OpenNI2.lib" "C:\Program Files\PCL 1.13.1\3rdParty\FLANN\lib\flann_cpp_s.lib" " 
  C:\Program Files\PCL 1.13.1\lib\pcl_registrationd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_segmentationd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_featuresd.lib" "C:\Program File 
  s\PCL 1.13.1\lib\pcl_filtersd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_sample_consensusd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_mld.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_v 
  isualizationd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_searchd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_kdtreed.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_iod.lib" "C:\Program Fi 
  les\PCL 1.13.1\lib\pcl_octreed.lib" "C:\Program Files\OpenNI2\Lib\OpenNI2.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkChartsCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1 
  \3rdParty\VTK\lib\vtkInteractionImage-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOGeometry-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOPLY-9. 
  2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingLOD-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkViewsContext2D-9.2-gd.lib" "C:\Program Files\P 
  CL 1.13.1\3rdParty\VTK\lib\vtkViewsCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkInteractionWidgets-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\v 
  tkFiltersModeling-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkInteractionStyle-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersExtraction-9.2- 
  gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOLegacy-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdP 
  arty\VTK\lib\vtkRenderingAnnotation-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOImage-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingCont 
  extOpenGL2-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingContext2D-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingFreeType-9.2-gd.li 
  b" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkfreetype-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkzlib-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VT 
  K\lib\vtkRenderingOpenGL2-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingHyperTreeGrid-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkImagingS 
  ources-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkImagingCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingUI-9.2-gd.lib" "C:\Program Fi 
  les\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonColor-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib 
  \vtkFiltersGeometry-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersSources-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersGeneral-9.2-gd. 
  lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonComputationalGeometry-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersCore-9.2-gd.lib" "C:\Program  
  Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonExecutionModel-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonDataModel-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rd 
  Party\VTK\lib\vtkCommonMisc-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonTransforms-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonMath-9 
  .2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkkissfft-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonCore-9.2-gd.lib" "C:\Program Files\PCL 1.13. 
  1\3rdParty\VTK\lib\vtksys-9.2-gd.lib" ws2_32.lib dbghelp.lib psapi.lib "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkglew-9.2-gd.lib" opengl32.lib "C:\Program Files\PCL 1.13.1\ 
  lib\pcl_commond.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_system-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_filesystem- 
  vc143-mt-gd-x64-1_82.lib" bcrypt.lib synchronization.lib "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_atomic-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rd 
  Party\Boost\lib\libboost_iostreams-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_bzip2-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\ 
  3rdParty\Boost\lib\libboost_zlib-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_serialization-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1 
  .13.1\3rdParty\Qhull\lib\qhullstatic_rd.lib" kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFE 
  STUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/build/Debug/cluster_extraction.pdb" /SUBS 
  YSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/build/Debug/cluster_extraction.lib" /MACHINE:X64  /machine 
  :x64 cluster_extraction.dir\Debug\cluster_extraction.obj
  cluster_extraction.vcxproj -> C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\Debug\cluster_extraction.exe
FinalizeBuildStatus:
  Deleting file "cluster_extraction.dir\Debug\cluster_.EA38C2EA.tlog\unsuccessfulbuild".
  Touching "cluster_extraction.dir\Debug\cluster_.EA38C2EA.tlog\cluster_extraction.lastbuildstate".
Done Building Project "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\cluster_extraction.vcxproj" (default targets).

Project "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\ALL_BUILD.vcxproj" (1) is building "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descripto
r\build\esf2.vcxproj" (5) on node 1 (default targets).
PrepareForBuild:
  Creating directory "esf2.dir\Debug\".
  Creating directory "esf2.dir\Debug\esf2.tlog\".
InitializeBuildStatus:
  Creating "esf2.dir\Debug\esf2.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  Building Custom Rule C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/CMakeLists.txt
ClCompile:
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX64\x64\CL.exe /c /Zi /nologo /W3 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D  
  _WINDOWS /D __SSE4_2__ /D __SSE4_1__ /D __SSSE3__ /D __SSE3__ /D __SSE2__ /D __SSE__ /D BOOST_ALL_NO_LIB /D BOOST_SYSTEM_NO_LIB /D BOOST_FILESYSTEM_NO_LIB /D BOOST_ATOMIC_NO_LIB / 
  D BOOST_IOSTREAMS_NO_LIB /D BOOST_BZIP2_NO_LIB /D BOOST_ZLIB_NO_LIB /D BOOST_SERIALIZATION_NO_LIB /D kiss_fft_scalar=double /D KISSFFT_DLL_IMPORT=1 /D "CMAKE_INTDIR=\"Debug\"" /Gm 
  - /EHsc /RTC1 /MDd /GS /arch:AVX2 /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /std:c++14 /Fo"esf2.dir\Debug\\" /Fd"esf2.dir\Debug\vc143.pdb" /external:W0 /Gd /TP /errorRep 
  ort:queue  /external:I "C:/Program Files/PCL 1.13.1/include/pcl-1.13" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/Eigen/eigen3" /external:I "C:/Program Files/PCL 1.13.1/3rdP 
  arty/Boost/include/boost-1_82" /external:I "C:/Program Files/OpenNI2/Include" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2" /external:I "C:/Program Files/ 
  PCL 1.13.1/3rdParty/VTK/include/vtk-9.2/vtknlohmannjson/include" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2/vtkfreetype/include" /external:I "C:/Program 
   Files/PCL 1.13.1/3rdParty/FLANN/include" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/Qhull/include" "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\esf2. 
  cpp"
  esf2.cpp
Link:
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX64\x64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\ 
  4 - ESF Descriptor\build\Debug\esf2.exe" /INCREMENTAL /ILK:"esf2.dir\Debug\esf2.ilk" /NOLOGO /LIBPATH:"C:/Program Files/PCL 1.13.1/lib" /LIBPATH:"C:/Program Files/PCL 1.13.1/lib/D 
  ebug" "C:\Program Files\PCL 1.13.1\lib\pcl_surfaced.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_keypointsd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_trackingd.lib" "C:\Program Files 
  \PCL 1.13.1\lib\pcl_recognitiond.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_stereod.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_outofcored.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_p 
  eopled.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_system-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_filesystem-vc143-mt- 
  gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_iostreams-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_serializatio 
  n-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\OpenNI2\Lib\OpenNI2.lib" "C:\Program Files\PCL 1.13.1\3rdParty\FLANN\lib\flann_cpp_s.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_regist 
  rationd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_segmentationd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_featuresd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_filtersd.lib" "C:\Pro 
  gram Files\PCL 1.13.1\lib\pcl_sample_consensusd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_mld.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_visualizationd.lib" "C:\Program Files\PCL 1 
  .13.1\lib\pcl_searchd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_kdtreed.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_iod.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_octreed.lib" "C:\Pr 
  ogram Files\OpenNI2\Lib\OpenNI2.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkChartsCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkInteractionImage-9.2- 
  gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOGeometry-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOPLY-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rd 
  Party\VTK\lib\vtkRenderingLOD-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkViewsContext2D-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkViewsCore-9. 
  2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkInteractionWidgets-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersModeling-9.2-gd.lib" "C:\Program  
  Files\PCL 1.13.1\3rdParty\VTK\lib\vtkInteractionStyle-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersExtraction-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdPa 
  rty\VTK\lib\vtkIOLegacy-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingAnnotation-9.2-gd 
  .lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOImage-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingContextOpenGL2-9.2-gd.lib" "C:\Program Files\P 
  CL 1.13.1\3rdParty\VTK\lib\vtkRenderingContext2D-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingFreeType-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\V 
  TK\lib\vtkfreetype-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkzlib-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingOpenGL2-9.2-gd.lib" "C:\ 
  Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingHyperTreeGrid-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkImagingSources-9.2-gd.lib" "C:\Program Files\PCL 1 
  .13.1\3rdParty\VTK\lib\vtkImagingCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingUI-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderi 
  ngCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonColor-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersGeometry-9.2-gd.lib" "C:\Progra 
  m Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersSources-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersGeneral-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty 
  \VTK\lib\vtkCommonComputationalGeometry-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommo 
  nExecutionModel-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonDataModel-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonMisc-9.2-gd.lib" "C 
  :\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonTransforms-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonMath-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3r 
  dParty\VTK\lib\vtkkissfft-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtksys-9.2-gd.lib" ws2_ 
  32.lib dbghelp.lib psapi.lib "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkglew-9.2-gd.lib" opengl32.lib "C:\Program Files\PCL 1.13.1\lib\pcl_commond.lib" "C:\Program Files\PCL 
   1.13.1\3rdParty\Boost\lib\libboost_system-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_filesystem-vc143-mt-gd-x64-1_82.lib" bcrypt.lib synch 
  ronization.lib "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_atomic-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_iostreams-vc143-m 
  t-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_bzip2-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_zlib-vc143-mt- 
  gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_serialization-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Qhull\lib\qhullstatic_rd.li 
  b" kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" 
   /manifest:embed /DEBUG /PDB:"C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/build/Debug/esf2.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C 
  :/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/build/Debug/esf2.lib" /MACHINE:X64  /machine:x64 esf2.dir\Debug\esf2.obj
  esf2.vcxproj -> C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\Debug\esf2.exe
FinalizeBuildStatus:
  Deleting file "esf2.dir\Debug\esf2.tlog\unsuccessfulbuild".
  Touching "esf2.dir\Debug\esf2.tlog\esf2.lastbuildstate".
Done Building Project "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\esf2.vcxproj" (default targets).

Project "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\ALL_BUILD.vcxproj" (1) is building "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descripto
r\build\esf_estimation.vcxproj" (6) on node 1 (default targets).
PrepareForBuild:
  Creating directory "esf_estimation.dir\Debug\".
  Creating directory "esf_estimation.dir\Debug\esf_estimation.tlog\".
InitializeBuildStatus:
  Creating "esf_estimation.dir\Debug\esf_estimation.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  Building Custom Rule C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/CMakeLists.txt
ClCompile:
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX64\x64\CL.exe /c /Zi /nologo /W3 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D  
  _WINDOWS /D __SSE4_2__ /D __SSE4_1__ /D __SSSE3__ /D __SSE3__ /D __SSE2__ /D __SSE__ /D BOOST_ALL_NO_LIB /D BOOST_SYSTEM_NO_LIB /D BOOST_FILESYSTEM_NO_LIB /D BOOST_ATOMIC_NO_LIB / 
  D BOOST_IOSTREAMS_NO_LIB /D BOOST_BZIP2_NO_LIB /D BOOST_ZLIB_NO_LIB /D BOOST_SERIALIZATION_NO_LIB /D kiss_fft_scalar=double /D KISSFFT_DLL_IMPORT=1 /D "CMAKE_INTDIR=\"Debug\"" /Gm 
  - /EHsc /RTC1 /MDd /GS /arch:AVX2 /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /std:c++14 /Fo"esf_estimation.dir\Debug\\" /Fd"esf_estimation.dir\Debug\vc143.pdb" /external: 
  W0 /Gd /TP /errorReport:queue  /external:I "C:/Program Files/PCL 1.13.1/include/pcl-1.13" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/Eigen/eigen3" /external:I "C:/Program F 
  iles/PCL 1.13.1/3rdParty/Boost/include/boost-1_82" /external:I "C:/Program Files/OpenNI2/Include" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2" /external: 
  I "C:/Program Files/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2/vtknlohmannjson/include" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2/vtkfreetype/include" /ex 
  ternal:I "C:/Program Files/PCL 1.13.1/3rdParty/FLANN/include" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/Qhull/include" "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 -  
  ESF Descriptor\esf_estimation.cpp"
  esf_estimation.cpp
Link:
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX64\x64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\ 
  4 - ESF Descriptor\build\Debug\esf_estimation.exe" /INCREMENTAL /ILK:"esf_estimation.dir\Debug\esf_estimation.ilk" /NOLOGO /LIBPATH:"C:/Program Files/PCL 1.13.1/lib" /LIBPATH:"C:/ 
  Program Files/PCL 1.13.1/lib/Debug" "C:\Program Files\PCL 1.13.1\lib\pcl_surfaced.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_keypointsd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_tr 
  ackingd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_recognitiond.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_stereod.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_outofcored.lib" "C:\Prog 
  ram Files\PCL 1.13.1\lib\pcl_peopled.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_system-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib 
  \libboost_filesystem-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_iostreams-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\B 
  oost\lib\libboost_serialization-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\OpenNI2\Lib\OpenNI2.lib" "C:\Program Files\PCL 1.13.1\3rdParty\FLANN\lib\flann_cpp_s.lib" "C:\Program F 
  iles\PCL 1.13.1\lib\pcl_registrationd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_segmentationd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_featuresd.lib" "C:\Program Files\PCL 1.13.1 
  \lib\pcl_filtersd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_sample_consensusd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_mld.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_visualization 
  d.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_searchd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_kdtreed.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_iod.lib" "C:\Program Files\PCL 1.13 
  .1\lib\pcl_octreed.lib" "C:\Program Files\OpenNI2\Lib\OpenNI2.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkChartsCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VT 
  K\lib\vtkInteractionImage-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOGeometry-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOPLY-9.2-gd.lib" "C 
  :\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingLOD-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkViewsContext2D-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3r 
  dParty\VTK\lib\vtkViewsCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkInteractionWidgets-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersMod 
  eling-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkInteractionStyle-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersExtraction-9.2-gd.lib" "C:\ 
  Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOLegacy-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib 
  \vtkRenderingAnnotation-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOImage-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingContextOpenGL2-9 
  .2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingContext2D-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingFreeType-9.2-gd.lib" "C:\Progr 
  am Files\PCL 1.13.1\3rdParty\VTK\lib\vtkfreetype-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkzlib-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRen 
  deringOpenGL2-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingHyperTreeGrid-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkImagingSources-9.2-g 
  d.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkImagingCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingUI-9.2-gd.lib" "C:\Program Files\PCL 1.13 
  .1\3rdParty\VTK\lib\vtkRenderingCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonColor-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersG 
  eometry-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersSources-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersGeneral-9.2-gd.lib" "C:\Pro 
  gram Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonComputationalGeometry-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersCore-9.2-gd.lib" "C:\Program Files\PCL 1. 
  13.1\3rdParty\VTK\lib\vtkCommonExecutionModel-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonDataModel-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\li 
  b\vtkCommonMisc-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonTransforms-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonMath-9.2-gd.lib" " 
  C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkkissfft-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\V 
  TK\lib\vtksys-9.2-gd.lib" ws2_32.lib dbghelp.lib psapi.lib "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkglew-9.2-gd.lib" opengl32.lib "C:\Program Files\PCL 1.13.1\lib\pcl_comm 
  ond.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_system-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_filesystem-vc143-mt-gd- 
  x64-1_82.lib" bcrypt.lib synchronization.lib "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_atomic-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\ 
  lib\libboost_iostreams-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_bzip2-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boo 
  st\lib\libboost_zlib-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_serialization-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdPar 
  ty\Qhull\lib\qhullstatic_rd.lib" kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level 
  ='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/build/Debug/esf_estimation.pdb" /SUBSYSTEM:CONSOLE /T 
  LBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/build/Debug/esf_estimation.lib" /MACHINE:X64  /machine:x64 esf_estimation. 
  dir\Debug\esf_estimation.obj
  esf_estimation.vcxproj -> C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\Debug\esf_estimation.exe
FinalizeBuildStatus:
  Deleting file "esf_estimation.dir\Debug\esf_estimation.tlog\unsuccessfulbuild".
  Touching "esf_estimation.dir\Debug\esf_estimation.tlog\esf_estimation.lastbuildstate".
Done Building Project "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\esf_estimation.vcxproj" (default targets).

Project "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\ALL_BUILD.vcxproj" (1) is building "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descripto
r\build\read_file.vcxproj" (7) on node 1 (default targets).
PrepareForBuild:
  Creating directory "read_file.dir\Debug\".
  Creating directory "read_file.dir\Debug\read_file.tlog\".
InitializeBuildStatus:
  Creating "read_file.dir\Debug\read_file.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  Building Custom Rule C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/CMakeLists.txt
ClCompile:
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX64\x64\CL.exe /c /Zi /nologo /W3 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D  
  _WINDOWS /D __SSE4_2__ /D __SSE4_1__ /D __SSSE3__ /D __SSE3__ /D __SSE2__ /D __SSE__ /D BOOST_ALL_NO_LIB /D BOOST_SYSTEM_NO_LIB /D BOOST_FILESYSTEM_NO_LIB /D BOOST_ATOMIC_NO_LIB / 
  D BOOST_IOSTREAMS_NO_LIB /D BOOST_BZIP2_NO_LIB /D BOOST_ZLIB_NO_LIB /D BOOST_SERIALIZATION_NO_LIB /D kiss_fft_scalar=double /D KISSFFT_DLL_IMPORT=1 /D "CMAKE_INTDIR=\"Debug\"" /Gm 
  - /EHsc /RTC1 /MDd /GS /arch:AVX2 /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /std:c++14 /Fo"read_file.dir\Debug\\" /Fd"read_file.dir\Debug\vc143.pdb" /external:W0 /Gd /TP 
   /errorReport:queue  /external:I "C:/Program Files/PCL 1.13.1/include/pcl-1.13" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/Eigen/eigen3" /external:I "C:/Program Files/PCL 1 
  .13.1/3rdParty/Boost/include/boost-1_82" /external:I "C:/Program Files/OpenNI2/Include" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2" /external:I "C:/Prog 
  ram Files/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2/vtknlohmannjson/include" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2/vtkfreetype/include" /external:I " 
  C:/Program Files/PCL 1.13.1/3rdParty/FLANN/include" /external:I "C:/Program Files/PCL 1.13.1/3rdParty/Qhull/include" "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descri 
  ptor\read_file.cpp"
  read_file.cpp
C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\read_file.cpp(84,86): warning C4996: 'boost::filesystem::extension': Use path::extension() instead [C:\lib\repo\MP0
2-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\read_file.vcxproj]
Link:
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX64\x64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\ 
  4 - ESF Descriptor\build\Debug\read_file.exe" /INCREMENTAL /ILK:"read_file.dir\Debug\read_file.ilk" /NOLOGO /LIBPATH:"C:/Program Files/PCL 1.13.1/lib" /LIBPATH:"C:/Program Files/P 
  CL 1.13.1/lib/Debug" "C:\Program Files\PCL 1.13.1\lib\pcl_surfaced.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_keypointsd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_trackingd.lib" "C 
  :\Program Files\PCL 1.13.1\lib\pcl_recognitiond.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_stereod.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_outofcored.lib" "C:\Program Files\PCL 1 
  .13.1\lib\pcl_peopled.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_system-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_files 
  ystem-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_iostreams-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboo 
  st_serialization-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\OpenNI2\Lib\OpenNI2.lib" "C:\Program Files\PCL 1.13.1\3rdParty\FLANN\lib\flann_cpp_s.lib" "C:\Program Files\PCL 1.13.1 
  \lib\pcl_registrationd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_segmentationd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_featuresd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_filter 
  sd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_sample_consensusd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_mld.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_visualizationd.lib" "C:\Prog 
  ram Files\PCL 1.13.1\lib\pcl_searchd.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_kdtreed.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_iod.lib" "C:\Program Files\PCL 1.13.1\lib\pcl_octr 
  eed.lib" "C:\Program Files\OpenNI2\Lib\OpenNI2.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkChartsCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIntera 
  ctionImage-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOGeometry-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOPLY-9.2-gd.lib" "C:\Program Files 
  \PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingLOD-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkViewsContext2D-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\ 
  vtkViewsCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkInteractionWidgets-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersModeling-9.2-gd.li 
  b" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkInteractionStyle-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersExtraction-9.2-gd.lib" "C:\Program Files\P 
  CL 1.13.1\3rdParty\VTK\lib\vtkIOLegacy-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingAn 
  notation-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkIOImage-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingContextOpenGL2-9.2-gd.lib" "C:\ 
  Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingContext2D-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingFreeType-9.2-gd.lib" "C:\Program Files\PCL 1. 
  13.1\3rdParty\VTK\lib\vtkfreetype-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkzlib-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingOpenGL2-9 
  .2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingHyperTreeGrid-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkImagingSources-9.2-gd.lib" "C:\Prog 
  ram Files\PCL 1.13.1\3rdParty\VTK\lib\vtkImagingCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkRenderingUI-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK 
  \lib\vtkRenderingCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonColor-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersGeometry-9.2-gd. 
  lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersSources-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersGeneral-9.2-gd.lib" "C:\Program Files\PCL  
  1.13.1\3rdParty\VTK\lib\vtkCommonComputationalGeometry-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkFiltersCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\V 
  TK\lib\vtkCommonExecutionModel-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonDataModel-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonMisc 
  -9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonTransforms-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonMath-9.2-gd.lib" "C:\Program File 
  s\PCL 1.13.1\3rdParty\VTK\lib\vtkkissfft-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkCommonCore-9.2-gd.lib" "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtksys-9 
  .2-gd.lib" ws2_32.lib dbghelp.lib psapi.lib "C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib\vtkglew-9.2-gd.lib" opengl32.lib "C:\Program Files\PCL 1.13.1\lib\pcl_commond.lib" "C:\Pr 
  ogram Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_system-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_filesystem-vc143-mt-gd-x64-1_82.lib" b 
  crypt.lib synchronization.lib "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_atomic-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_io 
  streams-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_bzip2-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost 
  _zlib-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Boost\lib\libboost_serialization-vc143-mt-gd-x64-1_82.lib" "C:\Program Files\PCL 1.13.1\3rdParty\Qhull\lib\qh 
  ullstatic_rd.lib" kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' ui 
  Access='false'" /manifest:embed /DEBUG /PDB:"C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/build/Debug/read_file.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE  
  /NXCOMPAT /IMPLIB:"C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/build/Debug/read_file.lib" /MACHINE:X64  /machine:x64 read_file.dir\Debug\read_file.obj        
  read_file.vcxproj -> C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\Debug\read_file.exe
FinalizeBuildStatus:
  Deleting file "read_file.dir\Debug\read_file.tlog\unsuccessfulbuild".
  Touching "read_file.dir\Debug\read_file.tlog\read_file.lastbuildstate".
Done Building Project "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\read_file.vcxproj" (default targets).

PrepareForBuild:
  Creating directory "x64\Debug\ALL_BUILD\".
  Creating directory "x64\Debug\ALL_BUILD\ALL_BUILD.tlog\".
InitializeBuildStatus:
  Creating "x64\Debug\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  Building Custom Rule C:/lib/repo/MP02-Muneeb_Khan-SS/40_Realisation/4 - ESF Descriptor/CMakeLists.txt
FinalizeBuildStatus:
  Deleting file "x64\Debug\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild".
  Touching "x64\Debug\ALL_BUILD\ALL_BUILD.tlog\ALL_BUILD.lastbuildstate".
Done Building Project "C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\ALL_BUILD.vcxproj" (default targets).

Build succeeded.

"C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\ALL_BUILD.vcxproj" (default target) (1) ->
"C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\read_file.vcxproj" (default target) (7) ->
(ClCompile target) ->
  C:\lib\repo\MP02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\read_file.cpp(84,86): warning C4996: 'boost::filesystem::extension': Use path::extension() instead [C:\lib\repo\M 
P02-Muneeb_Khan-SS\40_Realisation\4 - ESF Descriptor\build\read_file.vcxproj]

These are the results for the compiler/linker commands. Moreover, I tried rebuilding with SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX2") but nothing changed,

mvieth commented 1 year ago

@muneeb127 Maybe try GASDEstimation instead of ESFEstimation (see also https://pcl.readthedocs.io/projects/tutorials/en/master/gasd_estimation.html ). Whether that works or doesn't work might give us more information about the problem.

muneeb127 commented 1 year ago

Hello, I tried computing the GASD Estimation but there seems to be an issue with the getTransform() function Following is the code:

#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/features/gasd.h>

int
main(int argc, char** argv)
{

    std::vector<std::string> pointCloudFiles = {".\\data\\000.580.67\\1258250240333_cluster_0_nxyz.pcd", 
       ".\\data\\000.580.67\\1258250242333_cluster_0_nxyz.pcd", ".\\data\\000.580.67\\1258290249333_cluster_0_nxyz.pcd", 
       ".\\data\\000.580.67\\1258570238333_cluster_0_nxyz.pcd"};
    for (const std::string& fileName : pointCloudFiles)
        {
               // Read the point cloud data
               pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);

        // Read a PCD file from disk.
        if (pcl::io::loadPCDFile<pcl::PointXYZ>(fileName, *cloud) != 0)
        {
            return -1;
        }

        // Note: you would usually perform downsampling now. It has been omitted here
        // for simplicity, but be aware that computation can take a long time.

        // Create the GASD estimation class, and pass the input dataset to it
        pcl::GASDEstimation<pcl::PointXYZ, pcl::GASDSignature512> gasd;
        gasd.setInputCloud (cloud);

        // Output datasets
        pcl::PointCloud<pcl::GASDSignature512> descriptor;

        // Compute the descriptor
        gasd.compute (descriptor);

        // Get the alignment transform
        Eigen::Matrix4f trans = gasd.getTransform(trans);

        // Unpack histogram bins
        for (std::size_t i = 0; i < std::size_t( descriptor[0].descriptorSize ()); ++i)
        {
            descriptor[0].histogram[i];
        }

                // Store the computed descriptor (for demonstration purposes, you can choose a more suitable data structure or file 
                 storage)
                 std::string output_file_name = fileName.substr(0, fileName.find_last_of('.')) + "_gasd.pcd";
                 pcl::io::savePCDFileASCII(output_file_name, descriptor);
         std::cerr << "Saved data points to " << output_file_name << std::endl;
    }
    return 0;
}

When I try to build the code using cmake --build ., following error occurs: image Then I built the code by commenting out the line Eigen::Matrix4f trans = gasd.getTransform(trans);. The code was built successfully but the following error occurred on execution: image image

mvieth commented 1 year ago

I tried computing the GASD Estimation but there seems to be an issue with the getTransform() function

Looks like there is a mistake in the tutorial, the line should be Eigen::Matrix4f trans = gasd.getTransform(); (no argument, as the error message suggests).

The code was built successfully but the following error occurred on execution:

Have you tried using a debugger or similar to find out where exactly that error comes from? That is, have you tried getting a stack trace? On Ubuntu, I don't see that error.

muneeb127 commented 1 year ago

The code was giving the error on gasd.compute(). I am trying this on Ubuntu now, and so far things are working well. ESF is being computed for the files in the directory. Thank you so much for your help.

mvieth commented 1 year ago

I had the chance to test this under Windows with the 1.13.1 all-in-one installer, and I could reproduce the access violation error when the pcl::ESFEstimation object is destroyed (more precisely, the local_cloud_ member). However, with the 1.13.0 all-in-one installer, it seemed to work fine. @UnaNancyOwen Can you think of anything that changed with the installer?

UnaNancyOwen commented 1 year ago

@UnaNancyOwen Can you think of anything that changed with the installer?

No, I don't think anything will change with PCL All-in-one Installer 1.13.0 and PCL All-in-one Installer 1.13.1. You can build from source code yourself or build using vcpkg to confirm if occurs this problem. There are my build notes for build yourself and tutorial for vcpkg. https://gist.github.com/UnaNancyOwen/59319050d53c137ca8f3#file-pcl1-13-1-md https://pcl.readthedocs.io/projects/tutorials/en/pcl-1.13.1/pcl_vcpkg_windows.html