Commit b527ab99 authored by Alexander Alekhin's avatar Alexander Alekhin Committed by GitHub

Merge pull request #1008 from Sahloul:features/python_wrapper/surface_matching

Wrap `computeNormalsPC3d()` for python
parents b11ce40e 1df961cd
...@@ -89,7 +89,7 @@ Mat samplePCUniformInd(Mat PC, int sampleStep, std::vector<int>& indices); ...@@ -89,7 +89,7 @@ Mat samplePCUniformInd(Mat PC, int sampleStep, std::vector<int>& indices);
* @param [in] zrange Z components (min and max) of the bounding box of the model * @param [in] zrange Z components (min and max) of the bounding box of the model
* @param [in] sample_step_relative The point cloud is sampled such that all points * @param [in] sample_step_relative The point cloud is sampled such that all points
* have a certain minimum distance. This minimum distance is determined relatively using * have a certain minimum distance. This minimum distance is determined relatively using
* the parameter sample_step_relative. * the parameter sample_step_relative.
* @param [in] weightByCenter The contribution of the quantized data points can be weighted * @param [in] weightByCenter The contribution of the quantized data points can be weighted
* by the distance to the origin. This parameter enables/disables the use of weighting. * by the distance to the origin. This parameter enables/disables the use of weighting.
* @return Sampled point cloud * @return Sampled point cloud
...@@ -135,7 +135,7 @@ CV_EXPORTS void getRandomPose(double Pose[16]); ...@@ -135,7 +135,7 @@ CV_EXPORTS void getRandomPose(double Pose[16]);
/** /**
* Adds a uniform noise in the given scale to the input point cloud * Adds a uniform noise in the given scale to the input point cloud
* @param [in] pc Input point cloud (CV_32F family). * @param [in] pc Input point cloud (CV_32F family).
* @param [in] scale Input scale of the noise. The larger the scale, the more noisy the output * @param [in] scale Input scale of the noise. The larger the scale, the more noisy the output
*/ */
CV_EXPORTS Mat addNoisePC(Mat pc, double scale); CV_EXPORTS Mat addNoisePC(Mat pc, double scale);
...@@ -148,13 +148,13 @@ CV_EXPORTS Mat addNoisePC(Mat pc, double scale); ...@@ -148,13 +148,13 @@ CV_EXPORTS Mat addNoisePC(Mat pc, double scale);
* If PCNormals is provided to be an Nx6 matrix, then no new allocation * If PCNormals is provided to be an Nx6 matrix, then no new allocation
* is made, instead the existing memory is overwritten. * is made, instead the existing memory is overwritten.
* @param [in] PC Input point cloud to compute the normals for. * @param [in] PC Input point cloud to compute the normals for.
* @param [in] PCNormals Output point cloud * @param [out] PCNormals Output point cloud
* @param [in] NumNeighbors Number of neighbors to take into account in a local region * @param [in] NumNeighbors Number of neighbors to take into account in a local region
* @param [in] FlipViewpoint Should normals be flipped to a viewing direction? * @param [in] FlipViewpoint Should normals be flipped to a viewing direction?
* @param [in] viewpoint * @param [in] viewpoint
* @return Returns 0 on success * @return Returns 0 on success
*/ */
CV_EXPORTS int computeNormalsPC3d(const Mat& PC, Mat& PCNormals, const int NumNeighbors, const bool FlipViewpoint, const double viewpoint[3]); CV_EXPORTS_W int computeNormalsPC3d(const Mat& PC, CV_OUT Mat& PCNormals, const int NumNeighbors, const bool FlipViewpoint, const Vec3d& viewpoint);
//! @} //! @}
......
...@@ -65,7 +65,7 @@ int main(int argc, char** argv) ...@@ -65,7 +65,7 @@ int main(int argc, char** argv)
cv::ppf_match_3d::loadPLYSimple(modelFileName.c_str(), 1).copyTo(points); cv::ppf_match_3d::loadPLYSimple(modelFileName.c_str(), 1).copyTo(points);
cout << "Computing normals\n"; cout << "Computing normals\n";
double viewpoint[3] = { 0.0, 0.0, 0.0 }; cv::Vec3d viewpoint(0, 0, 0);
cv::ppf_match_3d::computeNormalsPC3d(points, pointsAndNormals, 6, false, viewpoint); cv::ppf_match_3d::computeNormalsPC3d(points, pointsAndNormals, 6, false, viewpoint);
std::cout << "Writing points\n"; std::cout << "Writing points\n";
......
...@@ -720,7 +720,7 @@ void meanCovLocalPCInd(const float* pc, const int* Indices, const int ws, const ...@@ -720,7 +720,7 @@ void meanCovLocalPCInd(const float* pc, const int* Indices, const int ws, const
} }
CV_EXPORTS int computeNormalsPC3d(const Mat& PC, Mat& PCNormals, const int NumNeighbors, const bool FlipViewpoint, const double viewpoint[3]) CV_EXPORTS int computeNormalsPC3d(const Mat& PC, Mat& PCNormals, const int NumNeighbors, const bool FlipViewpoint, const Vec3d& viewpoint)
{ {
int i; int i;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment