1

我正在寻找我必须在 QT4 项目中链接的 PCL 库。

4

2 回答 2

2

我找到了解决方案。缺少 QT 文件的 /QT/4.8.0/ 文件夹。

为此,他们还想在她自己的 qt 项目中实现 pcl。

  • 下载 QT creator -> 安装
  • 为 VS2010 下载 QT 4.8.0 -> 安装
  • 下载 pcl 二进制文件 -> 安装
  • 将以下代码添加到您的项目文件中
  • 享受 PCL

这是我的 *.pro 文件,带有 openCV 和 PCL 包括/链接:

#openCV
INCLUDEPATH += C:\\opencv2_4_0_VS_bin\\build\\include
LIBS += -LC:\\opencv2_4_0_VS_bin\\lib\\Debug\\ \
-lopencv_core240d \
-lopencv_highgui240d  \
-lopencv_imgproc240d  \
-lopencv_features2d240d  \
-lopencv_calib3d240d \
-lopencv_contrib240d \
-lopencv_flann240d \
-lopencv_legacy240d \
-lopencv_ml240d \
-lopencv_objdetect240d \
-lopencv_ts240d \
#-lopencv_gpu240d \
-lopencv_video240d

# PCL
INCLUDEPATH += C:\\PCL_1_6_0\\include\\pcl-1.6
INCLUDEPATH += C:\\PCL_1_6_0\\3rdParty\\Boost\\include
INCLUDEPATH += C:\\PCL_1_6_0\\3rdParty\\Eigen\\include
INCLUDEPATH += C:\\PCL_1_6_0\\3rdParty\\FLANN\\include
INCLUDEPATH += C:\\PCL_1_6_0\\3rdParty\\Qhull\\include
INCLUDEPATH += C:\\PCL_1_6_0\\3rdParty\\VTK\\include\\vtk-5.8
INCLUDEPATH += C:\\Program Files (x86)\\OpenNI\\Include

LIBS += -L"C:\Program Files (x86)\OpenNI\Lib\openNI.lib"

LIBS += -LC:\\PCL_1_6_0\\3rdParty\\Qhull\\Lib\\ \
-lqhullstatic

LIBS += -LC:\\PCL_1_6_0\\lib\\ \
-lpcl_apps_release \
-lpcl_common_release \
-lpcl_features_release \
-lpcl_filters_release \
-lpcl_io_release \
-lpcl_io_ply_release \
-lpcl_kdtree_release \
-lpcl_keypoints_release \
-lpcl_octree_release \
#-lpcl_range_image_border_extractor_release \
-lpcl_registration_release \
-lpcl_sample_consensus_release \
-lpcl_search_release \
-lpcl_segmentation_release \
-lpcl_surface_release \
-lpcl_tracking_release \
-lpcl_visualization_release

LIBS += -LC:\\PCL_1_6_0\\3rdParty\\VTK\\lib\\vtk-5.8\\ \
-lMapReduceMPI \
-lmpistubs  \
-lQVTK \
-lvtkalglib \
-lvtkCharts \
-lvtkCommon \
-lvtkDICOMParser \
-lvtkexoIIc \
-lvtkexpat \
-lvtkFiltering \
-lvtkfreetype \
-lvtkftgl \
-lvtkGenericFiltering \
-lvtkGeovis \
-lvtkGraphics \
-lvtkhdf5 \
-lvtkHybrid \
-lvtkImaging \
-lvtkInfovis \
-lvtkIO \
-lvtkjpeg \
-lvtklibxml2 \
-lvtkmetaio \
-lvtkNetCDF \
-lvtkNetCDF_cxx \
-lvtkpng \
-lvtkproj4 \
-lvtkRendering \
-lvtksqlite \
-lvtksys \
-lvtktiff \
-lvtkverdict \
-lvtkViews \
-lvtkVolumeRendering \
-lvtkWidgets \
-lvtkzlib

LIBS += -LC:\\PCL_1_6_0\\3rdParty\\FLANN\\lib\\ \
-lflann_cpp_s

LIBS += -LC:\\PCL_1_6_0\\3rdParty\\Boost\\lib\\ \
-llibboost_date_time-vc100-mt-1_49 \
-llibboost_thread-vc100-mt-1_49 \
-llibboost_filesystem-vc100-mt-1_49 \
-llibboost_system-vc100-mt-1_49 \
-llibboost_iostreams-vc100-mt-1_49

不幸的是,我还有其他链接问题:-(

当我尝试使用可视化器(pcl::visualization::PCLVisualizer)时,它给了我一些这样的错误:

vtkCommon.lib(vtkDebugLeaks.obj):-1: Fehler:LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__MessageBoxA@16" in Funktion ""protected: static int __cdecl vtkDebugLeaks::DisplayMessageBox(char const *)" (?DisplayMessageBox@vtkDebugLeaks@@KAHPBD@Z)". 

(对不起,它是德语,但您可以看到错误 LNK2019 和丢失的文件)

vktCommon.lib 似乎是一个外部链接错误。此库缺少 vtkWin32outputWindow.obj 文件。SystemTools.obj 文件也丢失了。

我可以找到解决方案。

pcl::visualization::CloudViewer 工作正常。

顺便提一句。我正在寻找解决方案如何为点云区域着色(由 pcl::PointIndices 定义)。我想为从分割中检测到的底层着色。

于 2012-12-06T23:17:41.947 回答
0

您正在使用哪个操作系统?

如果您右键单击您的项目文件,它会显示一个选项 - 添加库-> 外部库。在此窗口中,选择您的库文件并包含文件位置。它将在您的 .pro 文件中生成包含语句。

确保使用从用于编译当前项目的同一编译器编译的库。例如 - 在 Windows 上,如果您使用 Win32-VC10 二进制文件进行 PCL,那么请确保您也使用 VC10 编译器来编译 qt 项目。

于 2012-12-04T13:28:59.063 回答