I am using OpenCV ICP algorithm to find Transformation matrix(pose) between one scan 2D data with respect to reference 2D data (CAD DATA) of object.
Reference data:
Scan data:
Approach to filter out points:
Here for better matching, as shown in below image one imaginary straight points are created(black) in reference data and only points used which are right side of the red line (left sides of points are variable).
filtered reference data:
Also, in scan data as shown in below image points taken which are right side of the line and imaginary points created. Additionally to match points at the starting (because of convex) in scan data some straight points are created at top (black dots in image) in straight lines(using highest points from that region) and some additional points were removed.
filtered scan data:
But, OpenCV ICP is not giving accurate result for translation and rotation every time. is there any way to get better transformation matrix or pose for datasets of 2D point cloud? what can be possible approach with or without ICP?