isl-org / isl-org/Open3D

Point to Pixel transformation

Open
#3,800 0 comments 0 reactions 1 assignee Claimed by @reyanshsolis View on GitHub
feature request geometry pointcloud projection
Dominant language
C++
Stars
14k
Forks
2.6k
Avg merge
5d 18h
Merged PRs (30d)
6

Description

**Is your feature request related to a problem? Please describe.**
This is a feature request. I was assuming it is implemented, but failed to find in in the documentation so far.
Given an RGBD with color and position elements we can create a point_cloud using open3d.geometry.PointCloud.create_from_rgbd_image(). This creates (x,y,z),(R,G,B) data. However there is no interface to map between pixel(col, row) to (x,y,z) point. Having the inverse transformation from geometry to camera's image pixels could be valuable for multiple tasks (3D->2D registration, position based Ground truth annotation- Background subtraction etc).


**Describe the solution you'd like**:
A function to receive geometry and source camera position (front, look-at, up, zoom) returning pixel coordinates-
open3d.geometry.PointCloud.point2pixel(camera_pos)

**Describe alternatives you've considered**
One way to achieve it is to construct an enhanced data structure RGB-D-Point including color (RGB), depth (d), position (x,y,z), every time data is rendered.
The above can be calculated using the geometrical/affine transformation for a given camera position. Those transformations are available, and used during forward generation of Point Cloud from RGBD and visualization.

Thanks!

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.