Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

First of all I want to tell that my mathematics is poor, so I can’t use correct terms. Sorry for that. I have a point data set. This data represents some cylindrical objects surfaces (not exactly cylindrical due to occlusion part of the surfaces, represent by point data. ). In addition to cylindrical objects there are noisy data. What I want is to extract points represent cylindrical surfaces out of the other points. My idea is to use eigen vector analysis for that. So I already computed relevant eigen values (x0, x1, x2) and their eigen vectors (v0, v1, v2) for each point. For this, I used neighbor points, i.e., within given distance (for example 0.2m), of each point. I roughly aware of the vector (v2), relevant to eigen value two (x2), represents the direction of point distribution along the surface.

My question is how can i compare each 3d vector (v2) with other neighbor vectors in order to extract points which have similar point distribution direction (having nearly equal vectors). I’m poor in vector analysis. I am not sure the dot product between any two adjacent vectors is enough for this.

Thank you in advance.

share|cite|improve this question
You might want to use least-squares for this. A cylinder is given by $x^2+y^2=r^2$, where the $xy$-plane is in the base of the cylinder, and the $z$-axis is along the center. Using that constraint, you could transform your data to get a cylinder, and then remove the $z$-coordinate. From there, I would think the cylinder constraint above would allow least-squares to work. This would get you an "average" for the cylinder, and then you could determine the distances of points from that average, and choose points where the distance is small enough to your liking. Is this like what you want? – Eric Stucky Jun 3 '12 at 20:50
@Eric Stucky: thanks for your ideas but it is not what I wanted. Actually, it doesn’t have exact cylindrical shape (it likes small arc in 2D, so can not fit a correct cylinder), so that, I want to get only points which represent similar principal direction. I hope that we can assume small regions of these points as planar surfaces. So, I selected small regions based on their neighbors and calculated their eigen values and eigen vectors. Then, I want to find points which have very similar distribution direction. – sana Jun 4 '12 at 11:01
@Eric Stucky: Actually, for this I check angle in between 2 vectors of near points to find whether it is too small or not (based on my given threshold). But I found angle difference is always very large for example more than 85.. 114...degrees., so I am confusing with this. Also, this object has an almost vertical shape in 3D. So I also check vectors (eigen vector related to the largest eigen value) of each points with vertical vector (0, 0, 1) for check their behavior and interesting I got very large angle difference too.So, really, I can not understand the behavior of eigen vectors. – sana Jun 4 '12 at 11:03
@Eric Stucky: Cloud you have any idea about this? – sana Jun 4 '12 at 11:04

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.