Fix the reading error when PLY files use non-RGB color orders. #7167
+14
−18
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Type
Motivation and Context
It seems that
open3d.io.read_point_cloud
assumes that the color properties end with the blue channel:If a PLY file defines colors in other orders, e.g., GBR, the
color_index
is incorrectly incremented after reading the blue channel, causing all red values to be placed at the wrong positions.However,
open3d.t.io.read_point_cloud
correctly handles this case:Checklist:
python util/check_style.py --apply
to apply Open3D code styleto my code.
updated accordingly.
results (e.g. screenshots or numbers) here.
Description
I changed the meaning of
color_index
to track the number of processed channels (instead of the number of points), which allows for correct point indexing regardless of the channel order.Here is an example using this file :