0

I have a pallet that shown in the following image and I would like to segment it. I don´t have the ground plane, so that I can check the normals of the points if they are parallel to the ground plane normal then segment those points. but I dont have the ground plane. How would I segment those points. enter image description here

[Edit by Spektre]

Here Red/Blue color encoded partial derivation of your depth image from your previous question:

derivation by z

The black areas has the same Z coordinate (poor Z resolution or plane parallel with screen projection plane) The Red/Blue lines are geometric edges in point cloud. As you can see it is far from the real plane.

Spektre
  • 49,595
  • 11
  • 110
  • 380
andre
  • 155
  • 4
  • 12
  • compute partial derivations of `z` by `x` and `y` (gradient). For the neighboring points on the same plane the derivations should be close to equal if the distance between them is similar which is your case. So for each point compute `zx(x,y)=z(x,y)-z(x-1,y)` and `zy(x,y)=z(x,y)-z(x,y-1)` and group points that has similar derivates to neighbors – Spektre Jun 24 '16 at 08:47
  • @Spektre can you some pseudo code ? Iḿ confused about how to calculate partial derviations – andre Jun 24 '16 at 08:54
  • the equation is the code .. you got set of 3D points so each pixel on the image has x,y,z coordinate. partial derivation of `z` by `x` means you take two neighboring pixels (along x axis) and substract their `Z` coordinates. If the Z axis is in poor resolution like in your previous question then this will not work properly as the plane is not plane at all but aliased few steps . so you will detect more planes instead of one. – Spektre Jun 24 '16 at 08:57
  • If you render image where Blue and Red channels are the partial derivations instead you should visually see the planes as distinct colors for visual check ... – Spektre Jun 24 '16 at 09:01
  • @Spektre thanks a lot. but a pseudo code would be helpful alot. please write me a pseudo code. I dont get your solution at all – andre Jun 24 '16 at 09:07
  • Added examle to your question ... see `derivey()` in [how to extract the borders of an image (OCT/retinal scan image)](http://stackoverflow.com/a/37963338/2521214) it is partial derivation by `y` the partial derivation by `x` is done simply by moving the `+1` from `y` to `x` ... `[y+1][x] -> [y][x+1]` – Spektre Jun 24 '16 at 09:15

0 Answers0