MATLAB Answers

Image Processing on point clouds

5 views (last 30 days)
Alexander Graf
Alexander Graf on 1 Jul 2020
Commented: Alexander Graf on 6 Jul 2020
Is it possible to do image processing and pattern recognition on point clouds? The starting situation is following:
I want to detect ellipses in a target plate and determine their centers with highest accuracy. The exact experimental setup doesn't play a role, but due to technical reasons, it would beneficial, if the markers (displayed as red circles in the following figure) could be found with a scanning trajectory that looks f.e. like the blue curve in the figure. This means that I will have only information / data points available along the blue line (with a certain spatial sampling distance). The measurement will provide a 4 x n matrix with n number of "sampling points" and each column consisiting of a value for the current timestamp, the current x-position, the current y-position and a voltage value (corresponding to brightness).
The information about the shape of the pattern (here the 3 red circles) is roughly given.
I know that image processing normally works on matrizes. A possibility could be to interpolate the given x and y coordinates of my data stream onto an equidistant grid with given resolution and set every "non-filled grid point" else to zero. I haven't tested that already, but I am quite sure that this would be too in-accurate and / or memory-consuming. The markers' diameter are around Ø1mm - Ø3mm, their centers should be determined with an accuracy of higher than 5µm.
Is there any other approach than "interpolating the data to an equidistant grid"?

  0 Comments

Sign in to comment.

Answers (1)

John D'Errico
John D'Errico on 1 Jul 2020
If you want to use image processing tools, you pretty much need an image. Those tools are not written to work without one, certainly not on scattered data from some general point cloud. So the simple answer is to just get enough memory to solve the problem, and interpolate to create an image. All is happy in the world, especially the hardware (RAM) sellers who just made a boatload of money from you.
If not, then you need to reformulate the problem in terms of how lo locate the parameters of a circle from a sequence of data points. If your data points are just sampled over time, and all you have is a 0 or 1 condition at any sampled point that indicates whether or not you saw a red dot at that location, then don't be amazed if you find it difficult to infer the EXACT center (and possibly radius) of a circle. You may even find that your measurement of the circle location is no better than if you used image processing anyway.

  1 Comment

Alexander Graf
Alexander Graf on 6 Jul 2020
Thanks for your feedback, John D'Errico!
I know that throwing money onto that problem to power up the RAM is not a valid solution. It's also clear that it's a difficult request, but due to technical and experimental reasons, it would be pretty nice if it is doable with this approach.
Since the shape of the to-be-investigated pattern (the red circles) is pretty well known, I was thinking about if it could be possible to mathematically find a best match between the measurement data and the reference pattern. I already wrote a script that creates a binary mask in the shape of the scan curve that can be applied to the reference pattern. But I don't really know how to proceed now. Nicest approach would be to try to find a best match between the masked reference pattern and the point cloud of measurement data. Also rotation and translation (and scaling) must be taken into account. Do you think that's possible? And could you please help with some literature, if yes?

Sign in to comment.


Translated by