3

I am taking part in the project studies associated with clouds of points.

We have to create a web application. Whose task will be displaying point cloud from .ply file. And then select an area and calculate its volume. The algorithm of counting the volume is to be implemented in C ++. The only things we have is a file in .ply format and file with the XYZ-coordinates of all points. The cloud of points we get, is generated from a picture taken by a drone. For example, it is a cloud of points representing a mountainous area . Our task is to be able to select such one mountain and calculate its approximate volume taking into account an error +/-. The measurement does not have to be perfect but it has to be even close to the real volume of mountain. The volume has to be calculated from the flat surface at the lowest point of the mountain.

I have two questions for you. -First, could you give me a clue, link or anything that would help me to find such an algorithm and the reasons why he is the best. -Second, do any of you have idea what would be the best way to select some area from the rendered point cloud?

I was looking for this information . But I can not find anything that would be useful enough to use it in our project. Any tip or a document on the subject would be very useful ;)

Kaltair
  • 41
  • 1
  • 3

2 Answers2

2

"Volume" is not a clearly defined concept for a point cloud. There are very many ways to determine a surface, and there is no single answer. It would depend very much on what constraints were given for defining the surface of the point cloud.

A very simplistic approach would be simply to use the minimum and maximum coordinate values on all three axes, thereby giving the volume of a right rectangular parallelepiped that encloses all the points.

A much more complex approach would involve computing a minimum convex envelope. That is a nontrivial problem.

It would get even harder if you were trying to find an envelope that was not necessarily convex.

In any case, it is important to pin down exactly what is meant by "volume" before you can craft an effective algorithm to compute it.

Logicrat
  • 4,438
  • 16
  • 22
  • 1
    Yes. You're right, I did not specify what I mean . The cloud of points we get, is generated from a picture taken by a drone. For example, it is a cloud of points representing a mountainous area . Our task is to be able to select such one mountain and calculate its approximate volume taking into account an error +/-. The measurement does not have to be perfect but it has to be even close to the real volume of mountain.The volume has to be calculated from the flat surface at the lowest point of the mountain. – Kaltair Mar 13 '16 at 14:16
2

As you are working with pointclouds generated "from a picture taking by a drone" (I'm assuming here that you mean something like: photogrammetric process over drone imagery):

  • First:

Take a look at:

This

Or try to develop yourself some approach based on octrees.

If you go for developing your own approach, and you want it in c++, take a look at: This and This

  • Second:

I'm not sure if I understand the question, but looks obvius to me that the best way to select the area of interest in order to perfmor the calculation is through user's interaction (let the user select points arround the area and compute over the remaining points between).

  • Extra:

Just In case you didn't know it yet, I recommend CloudCompare to everyone who is working on something PointCloud-related.

Hope this links could help you.

David de la Iglesia
  • 2,436
  • 14
  • 29