Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
aichim committed Mar 27, 2013
2 parents c845e57 + 7103fbb commit 48e05b7
Show file tree
Hide file tree
Showing 60 changed files with 3,494 additions and 2,426 deletions.
7 changes: 6 additions & 1 deletion apps/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ if(build)
PCL_ADD_EXECUTABLE(pcl_face_trainer ${SUBSYS_NAME} src/face_detection/face_trainer.cpp)
target_link_libraries(pcl_face_trainer pcl_features pcl_recognition pcl_common pcl_io pcl_filters pcl_visualization pcl_segmentation pcl_sample_consensus pcl_surface pcl_keypoints pcl_ml pcl_search pcl_kdtree vtkRendering vtkIO)

PCL_ADD_EXECUTABLE(pcl_fs_face_detector ${SUBSYS_NAME} src/face_detection//filesystem_face_detection.cpp)
PCL_ADD_EXECUTABLE_OPT_BUNDLE(pcl_fs_face_detector ${SUBSYS_NAME} src/face_detection//filesystem_face_detection.cpp)
target_link_libraries(pcl_fs_face_detector pcl_features pcl_recognition pcl_common pcl_io pcl_filters pcl_visualization pcl_segmentation pcl_sample_consensus pcl_surface pcl_keypoints pcl_ml pcl_search pcl_kdtree vtkRendering vtkIO)

PCL_ADD_EXECUTABLE(pcl_stereo_ground_segmentation ${SUBSYS_NAME} src/stereo_ground_segmentation.cpp)
Expand Down Expand Up @@ -162,6 +162,11 @@ if(build)
PCL_ADD_EXECUTABLE_OPT_BUNDLE(pcl_manual_registration ${SUBSYS_NAME} ${manual_registration_ui} ${manual_registration_moc} src/manual_registration/manual_registration.cpp)
target_link_libraries(pcl_manual_registration pcl_common pcl_io pcl_visualization pcl_segmentation pcl_features pcl_surface QVTK ${QT_LIBRARIES})

QT4_WRAP_UI(pcd_video_player_ui src/pcd_video_player/pcd_video_player.ui)
QT4_WRAP_CPP(pcd_video_player_moc include/pcl/apps/pcd_video_player.h OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED)
PCL_ADD_EXECUTABLE_OPT_BUNDLE(pcl_pcd_video_player ${SUBSYS_NAME} ${pcd_video_player_ui} ${pcd_video_player_moc} src/pcd_video_player/pcd_video_player.cpp)
target_link_libraries(pcl_pcd_video_player pcl_common pcl_io pcl_visualization pcl_segmentation pcl_features pcl_surface QVTK ${QT_LIBRARIES})

# Database processing (integration) demo
# QT4_WRAP_UI(db_proc_ui src/db_proc/db_proc.ui)
# QT4_WRAP_CPP(db_proc_moc include/pcl/apps/db_proc.h OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED)
Expand Down
166 changes: 166 additions & 0 deletions apps/include/pcl/apps/pcd_video_player.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
/*
* Software License Agreement (BSD License)
*
* Point Cloud Library (PCL) - www.pointclouds.org
* Copyright (c) 2012-, Open Perception, Inc.
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of the copyright holder(s) nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/

#include <ui_pcd_video_player.h>

#include <iostream>
#include <time.h>

// QT4
#include <QMainWindow>
#include <QMutex>
#include <QTimer>

// Boost
#include <boost/thread/thread.hpp>
#include <boost/filesystem.hpp>

// PCL
#include <pcl/console/print.h>
#include <pcl/console/parse.h>

#include <pcl/common/common.h>
#include <pcl/common/angles.h>
#include <pcl/common/time.h>
#include <pcl/common/transforms.h>

#include <pcl/point_cloud.h>
#include <pcl/point_types.h>

#include <pcl/io/pcd_grabber.h>
#include <pcl/io/pcd_io.h>

#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/point_cloud_handlers.h>

#include <pcl/registration/transformation_estimation_svd.h>

#define CURRENT_VERSION 0.2

// Useful macros
#define FPS_CALC(_WHAT_) \
do \
{ \
static unsigned count = 0;\
static double last = pcl::getTime ();\
double now = pcl::getTime (); \
++count; \
if (now - last >= 1.0) \
{ \
std::cout << "Average framerate("<< _WHAT_ << "): " << double(count)/double(now - last) << " Hz" << std::endl; \
count = 0; \
last = now; \
} \
}while(false)

namespace Ui
{
class MainWindow;
}

class PCDVideoPlayer : public QMainWindow
{
Q_OBJECT
public:
typedef pcl::PointCloud<pcl::PointXYZRGBA> Cloud;
typedef Cloud::Ptr CloudPtr;
typedef Cloud::ConstPtr CloudConstPtr;

PCDVideoPlayer ();

~PCDVideoPlayer () {}

protected:
boost::shared_ptr<pcl::visualization::PCLVisualizer> vis_;
pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud_;

QMutex mtx_;
QMutex vis_mtx_;
Ui::MainWindow *ui_;
QTimer *vis_timer_;

QString dir_;

std::vector<std::string> pcd_files_;
std::vector<boost::filesystem::path> pcd_paths_;


/** \brief The current displayed frame */
unsigned int current_frame_;
/** \brief Store the number of loaded frames */
unsigned int nr_of_frames_;

/** \brief Indicate that pointclouds were loaded */
bool cloud_present_;
/** \brief Indicate that the timeoutSlot needs to reload the pointcloud */
bool cloud_modified_;

/** \brief Indicate that files should play continiously */
bool play_mode_;
/** \brief In play mode only update if speed_counter_ == speed_value */
unsigned int speed_counter_;
/** \brief Fixes the speed in steps of 5ms, default 5, gives 5+1 * 5ms = 30ms = 33,3 Hz playback speed */
unsigned int speed_value_;

public slots:
void
playButtonPressed ()
{ play_mode_ = true; }

void
stopButtonPressed()
{ play_mode_ = false; }

void
backButtonPressed ();

void
nextButtonPressed ();

void
selectFolderButtonPressed ();

void
selectFilesButtonPressed ();

void
indexSliderValueChanged (int value);

private slots:
void
timeoutSlot ();

};
2 changes: 1 addition & 1 deletion apps/src/openni_organized_edge_detection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ class OpenNIOrganizedEdgeDetection
// Make gray point cloud
for (size_t idx = 0; idx < cloud_.points.size (); idx++)
{
uint8_t gray = uint8_t((cloud_.points[idx].r + cloud_.points[idx].g + cloud_.points[idx].b)/3);
pcl::uint8_t gray = pcl::uint8_t((cloud_.points[idx].r + cloud_.points[idx].g + cloud_.points[idx].b)/3);
cloud_.points[idx].r = cloud_.points[idx].g = cloud_.points[idx].b = gray;
}

Expand Down
4 changes: 2 additions & 2 deletions apps/src/openni_tracking.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -503,7 +503,7 @@ class OpenNISegmentTracking
result.points.push_back(point);
}

result.width = static_cast<uint32_t> (result.points.size ());
result.width = static_cast<pcl::uint32_t> (result.points.size ());
result.height = 1;
result.is_dense = true;
}
Expand All @@ -519,7 +519,7 @@ class OpenNISegmentTracking
PointType point = cloud->points[segmented_indices.indices[i]];
result.points.push_back (point);
}
result.width = uint32_t (result.points.size ());
result.width = pcl::uint32_t (result.points.size ());
result.height = 1;
result.is_dense = true;
}
Expand Down
Loading

0 comments on commit 48e05b7

Please sign in to comment.