Page 1 of 1

Scaling and Stitching Workflow Suggestion

Posted: Thu Nov 22, 2012 6:47 pm
by mankoff
Hi,

I have a task that I need to do, and CC may or may not be the right tool. I'm looking for suggestions how to best do this. Perhaps in CC, perhaps in another tool, perhaps in a combination of tools.

I have a ~500 m long cylinder and I am studying the inside of it. I have digitized it into about 20 models with overlap.
All un-scaled, un-oriented, etc. An example segment can be seen here:
photoscan
photoscan
photoscan.png (115.08 KiB) Viewed 8477 times
1) SCALING

In each model I have two known points. In the first model (M1), this is A01 and A02. There is overlap, so in the second model (M2) it is A02 and A03. Etc. For each model, I know the cross-section at the known points. (left, right, up, and down measurements). I also know the distance from point 1 to point 2, and the angle between them, both compass heading and inclination. Given this, each model can, theoretically, be oriented in space, and then scaled. And the scale can be independently verified 2x (if I scale using the A01 to A02 distance, then the left/right/up/down at A01 should be correct, and at A02 should be correct).

I imagine "marking" A01 and A02 in CC. I can pick these points. Using the camera icon, I manually enter the coordinates of point 1 so that it is now the center of rotation. Is there a faster way, or do I need to manually enter the x,y,z coordinates? Then I can measure to A02 and manually scale the model. The point-picking dialog shows distance between two picked points, but not angle and orientation. How to best determine angle and orientation within CC, or better yet, specify desired angle and rotation between two points?

2) STITCHING

Once each segment is scaled and rotated, I need to combine them all into one long pipe. How to best do this? Recall that M1 contains points A1 and A2, and M2 overlaps, containing points A2 and A3. Currently my work-flow would be:

Import M1 and M2. Manually align them as best I can. This should just be translation if they are both correctly scaled and oriented. An improvement might be to use the beta/in-development "Register" tool on the subsets of M1 and M2 that overlap, but this tool rarely works for me.

Thanks for any advice,

-k.

Re: Scaling and Stitching Workflow Suggestion

Posted: Fri Nov 23, 2012 4:07 pm
by daniel
1) To pick a point as the camera center, there's a new icon in the left toolbar: 'pick rotation center' (the cross right below '1:1').
To get an angle in CC, you must pick 3 points (so as to get a triangle [p1p2p3], and CC will give you the angle between [p1p2] and [p1p3]).

In your case, I'am afraid you'll have to make some maths on your own in order to get transformation matrices (4x4 with rotation + translation). You could then apply the right transformations matrices to each model (with the Edit > Apply transformation' tool).

2) Won't the ICP be enough in this case? You can sample points on each model (and keep only the overlapping parts by the way), then apply the ICP registration tool on the resulting clouds, and eventually copy the resulting 4x4 transformation matrix and apply it on the original 'data' model. Or did I miss something?

Re: Scaling and Stitching Workflow Suggestion

Posted: Sat Nov 24, 2012 3:22 am
by mankoff
1) The + icon to pick a new point doesn't work in Linux or OSX. It switches context, and the correct text appears at the bottom of the window, "Pick a point to be used as rotation center (click on icon again to cancel)". Clicking on icon does cancel. Clicking anywhere in the window has the normal effect. No rotation point is selected. CTRL or ALT or SHIFT don't change the behavior. Am I missing something, or should I file a bug report?

2) Yes I think you are right ICP should be fine. And I came across the "3D Comparison" article on the Wiki which is helpful. http://www.cloudcompare.org/doc/wiki/in ... D_entities

Re: Scaling and Stitching Workflow Suggestion

Posted: Sat Nov 24, 2012 6:43 am
by mankoff
Nevermind. The + icon (center of rotation) does work. You just have to click directly on a point. In a sparse point-cloud, sometimes you miss....