Point Cloud Library und QT4

Alles rund um die Programmierung mit Qt
Antworten
thomasf
Beiträge: 4
Registriert: 2. Dezember 2012 18:52

Point Cloud Library und QT4

Beitrag von thomasf »

Hallo,

mein Name ist Thomas und ich artbeite gerade daran ein paar Tiefenbilder zu visualisieren. Hierbei bin ich im Internet auf die Point Cloud Library gestoßen, welche eine gute Möglichkeit bietet 3D Informationen zu verarbeiteun und eben auch zu visualisieren.

Aktuell stehe ich vor dem Problem die entsprechenden Libs in mein QT4 projekt zu implementieren.

Anbei mal ein Compellierfähiger ausszug aus dem Projektfile:

Code: Alles auswählen

# 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

LIBS += -LC:\\PCL_1_6_0\\lib\\ \
-lpcl_visualization_release \
-lpcl_io_release \
-lpcl_filters_release \
-lpcl_kdtree_release \
-lpcl_registration_release \
-lpcl_features_release \
-lpcl_segmentation_release

LIBS += -LC:\\PCL_1_6_0\\3rdParty\\Boost\\lib\\ \
-lboost_date_time-vc100-mt-gd-1_49
Problem: Sobald ich auch eine Klasse aus der PCL verwende stürtzt das programm ab.

Code: Alles auswählen

#include <boost/thread/thread.hpp>
#include <pcl/common/common_headers.h>
#include <pcl/features/normal_3d.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/console/parse.h>

#include <pcl/visualization/cloud_viewer.h>

//steht im Constructor der main Klasse
pcl::visualization::PCLVisualizer viewer ("Test Cloudviewer");
Gib es jemanden hier, der die PCL bereits erfolgreich in QT4 zum Laufen gebracht hat? Ich wäre über jede Hilfe dankbar. Ich habe bereits in mehreren (auch englischsprachigen) Foren nach einer Lösung gesucht, bin aber leider nicht fündig geworden.

Der Großteil der User verwendet cmake, welches ich allerdings nur als letzte wahl in Erwägung ziehen möchte.

Schöne Grüße

Thomas
Markus
Beiträge: 105
Registriert: 31. Januar 2005 16:21

Re: Point Cloud Library und QT4

Beitrag von Markus »

Hallo Thomas,

hast Du mal das "automatische" Einbinden vom Qt Creator verwendet? (Ich verwende z.Z. noch Version 2.4.1 des Qt Creators)

Einfach im Projekt-Baum Deinen Projektnamen rechts klicken, "Bibliothek hinzufügen..." wählen und dann in Deinem Fall sicherlich "Externe Bibliothek" verwenden. Anschließend das Verzeichnis wählen, wo sich die Bibliotheksdateien befinden.

In der pro.-Datei sollten jetzt einige Einträge zu der Bibliothek vorhanden sein.

Viele Grüße,
Markus
thomasf
Beiträge: 4
Registriert: 2. Dezember 2012 18:52

Re: Point Cloud Library und QT4

Beitrag von thomasf »

Hi Markus,

danke erstmal für deine Antwort. Habe ich schon probiert, leider ohne Erfolg. Das Problem ist, dass ich nicht genau weiß welche Bibliotheken genau benötigt werden.

Aktuell sieht mein .pro file so aus:

Code: Alles auswählen

#-------------------------------------------------
#
# Project created by QtCreator 2012-12-03T10:41:13
#
#-------------------------------------------------

QT       += core gui

TARGET = PCL_Visu
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

# 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

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  \
-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 \
-lvtkViews

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
Ich denke damit decke ich schon viel ab. Problem besteht nach vie vor. Sobald ich eine Klasse der PCL einbinde wird zwar compeliert, aber bei der Ausführung aus QT heraus stürtzt die anwendung sofort ab und gibt mir diesen Fehlercode: 1073741515 zurück.

Schöne Grüße

Thomas
Markus
Beiträge: 105
Registriert: 31. Januar 2005 16:21

Re: Point Cloud Library und QT4

Beitrag von Markus »

Hmm... Okay.

Bei dem Fehler -1073741515 soll es sich angeblich um eine fehlende DLL handeln. Ich würde die Pfade zu den libs und dlls noch in die PATH-, LIBPATH, INCLUDE, LIB-Umgebungsvariable aufnehmen. Welchen Compiler verwendest Du? VS2008, VS2005 oder MinGW? Oder alles unter Linux oder Mac?

Viele Grüße,
Markus
thomasf
Beiträge: 4
Registriert: 2. Dezember 2012 18:52

Re: Point Cloud Library und QT4

Beitrag von thomasf »

Hi,

ich verwende den VC2010, da die binaries von der pcl dafür vorliegen und ich nicht erst mit diesem verdammten cmake rumbasteln muss. (das hat mir schon für opencv gelangt :-)

wie kann ich die von dir genannten änderungen vornehmen?

Danke Thomas
Markus
Beiträge: 105
Registriert: 31. Januar 2005 16:21

Re: Point Cloud Library und QT4

Beitrag von Markus »

(a) Unter Windows 7 geht es über rechte Maustaste auf "Computer" -> Eigenschaften -> links in der Auswahl "Erweiterte Systemeinstellungen" -> Button "Umgebungsvariablen" -> Bereich "Systemvariablen" den entsprechenden Eintrag hinzufügen oder erweitern.

(b) Im Qt Creator kann man aber auch unter den "Projekteinstellungen (Auswahl Projekt anstatt Editieren im linken Icon-Menü)" im Abschnitt "Build-Einstellungen" den Punkt "Build-Umgebung" die Systemumgebung anpassen. Dort auf [Details] klicken und die einsprechenden Einträge bearbeiten oder hinzufügen.

Ich würde es erstmal die Variante (b) im Qt Creator versuchen.
thomasf
Beiträge: 4
Registriert: 2. Dezember 2012 18:52

Re: Point Cloud Library und QT4

Beitrag von thomasf »

Hallo,

danke für die Hilfe. Habe ich nun auch probiert, leider ohne Erfolg.

Was könnte noch das Problem sein?

Thomas
Antworten