I want to compare a point cloud data(.pcd , .ply file) with 1 or more point cloud data and want to get similar points or patches. So I want to know which technique or algorithm has to be used?
What you want to do is:
Feature point detection: Find points on the surface of a point cloud that have a very unique and descriptive neighbourhood.
Feature estimation: For these points and their neighbours (usually in spherical radius R) compute a descriptor. This can be a histogram, a simple value or a multi dimensional vector. Depends on the descriptor you're using.
Find correspondences: Now for both point clouds, compare these descriptors and find matching ones (these are correspondences) and try to find these correspondences in a way that one point cloud fits the other. Reject correspondences that do not match.
If two clouds have a set of matching correspondences you can say that these two are certainly similiar.
I'd suggest to use the Point Clouds Library (PCL). There's a pretty good tutorial here:
http://pointclouds.org/documentation/tutorials/correspondence_grouping.php#correspondence-grouping
Also there is an overview of feature algorithms here (not complete though):
https://github.com/PointCloudLibrary/pcl/wiki/Overview-and-Comparison-of-Features