registration is aligning 3D point cloud on each other such that it gives you a complete model. To achieve this, you need to find the relative positions and orientations of each point cloud, such that you maximize the overlapping intersecting areas between them [1].

So I got the idea from here and I implemented a software based on that. In the following, you can see the main idea and the step I took and finally the results:

**Main Flowchart of pairwise point cloud registration**

image source: image has been taken from http://pointclouds.org/documentation/tutorials/registration_api.php

**1)Importing point cloud acquired from different angles, down sampling, selecting ****keypoint extractor method SIFT, NARF, Harris, SUSAN and respected parameters**

**2)****S****elected keypoints are highlighted in green, for each keypoint a descriptor (PFH or FPFH) is estimated**

**3) Correspondences ****between keypoint descriptor**** are ****estimated**** ****(histogram distance) ****and correspondent points are connected.**

**4****)**** C****orrespondent points ****are rejected via several algorithm and from the remained **** correspondent points ****a 4×4 transformation matrix is computed**

**5****)**** 4×4 transformation matrix ****is used for initial estimation of ICP algorithm and two point clouds are merged into one**