isl-org / isl-org/Open3D

How to implement point cloud affine registration?

Open
#5,779 0 comments 0 reactions 0 assignees View on GitHub
question
Dominant language
C++
Stars
14k
Forks
2.6k
Avg merge
5d 18h
Merged PRs (30d)
6

Description

### Checklist

- [X] I have searched for [similar issues](https://github.com/isl-org/Open3D/issues).
- [X] For Python issues, I have tested with the [latest development wheel](http://www.open3d.org/docs/latest/getting_started.html#development-version-pip).
- [X] I have checked the [release documentation](http://www.open3d.org/docs/release/) and the [latest documentation](http://www.open3d.org/docs/latest/) (for `master` branch).

### My Question

I am learning the point cloud registration by the [document](http://www.open3d.org/docs/latest/tutorial/pipelines/global_registration.html).

The provided demo search the transform with `rotation angle` and `translation`. But, I want to search a scale parameters.

For example, the original registration point is:

![image](https://user-images.githubusercontent.com/29271051/206967750-1af74d37-9909-4b4f-883b-96bf1c13ff2b.png)

If I modify the transform matrix to:

```
trans_init = np.asarray([[0.0, 0.0, 2.0, 0.0],
[2.0, 0.0, 0.0, 0.0],
[0.0, 2.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 1.0]])
```

and the visualization result is:

![image](https://user-images.githubusercontent.com/29271051/206967923-c1b51993-a6d0-40a0-bab6-39114e04d3d7.png)

Then, the registration result is:

![image](https://user-images.githubusercontent.com/29271051/206967972-7e6da280-02cc-44a9-a813-d265622223ec.png)

The registration result is obsolutely wrong. The reason is that the demo only conside a rigid registration rather than a affine registration.

How can I implement a affine registration with `open3d`? Any suggestion is appreciated~~~

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.