2

Two profile samples that are going to be fed to a 3d reconstruction system look as follows

profile1

profile2

Take X derivate + split red channel + threshold + DP onto nonzero pixels + connect DP points with lines result in:

final1 final2

I define my keypoints as:

final3 final4

i.e. any pixel from the first-big-bump, close to the ending

and the first-big-corner that is close to the lower part of deep arc.

How can I locate them programmatically using the resultant vector of white pixels ?

It is acceptable to modify the sample images to create your own noiseless ones.

It is acceptable to modify the pre-processing step.

No need for a generic and agressive solution, I am concerned just for these two.

I am hoping for ideas, instead of scripts/codes.

Thanks in advance

baci
  • 2,528
  • 15
  • 28

2 Answers2

2

I'm not sure if this helps, but I quickly converted both images to 1-D functions by finding the index of the maximum value in each line (blue and red). On the same figure I show the derivatives (cyan and green).

enter image description here

At least it seems your points could perhaps be found by using 1-D template matching, smoothing and/or looking at the derivative.

related
  • 794
  • 5
  • 14
  • thanks for your effort. I solved the issue by reconstructing prior to finding keypoints. After reconstruction, profiles look much more simple and similar. – baci May 28 '14 at 07:49
0

I don't believe that these feature point will exhibit any reliability (one can even wonder if these two profiles have any resemblance at all :( ).

Anyway, if there is no other choice, first try and define gross windows where these features could be found, by considering the extreme values in the signal. The first point will be found in some vicinity of the middle value, and the second point in some vicinity of the lower value (leftmost).

The first feature point is "inflection like" (s-shaped), so its derivative has a minimum. The second is itself a minimum.

Try an find width and height criteria to discriminate these minima.