go to www.geomview.org home page
 
Home

Overview
FAQ
Documentation

Download

Mailing List

Geomview For Windows?

Support
Users
Development

Bug Reporting
Contributing
Contact Us

Sponsors

 

Site Search

 

Advanced
Search

 
About the software@geom archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Update REQ 6978]: Normalisation




> Currently, I'm using it for (virtual) camera calibration. I however can't figure out
> exactly how the NORMALIZATION bit in the APPEARANCE panel works.
> 
> This isn't explained in the manual or in the FAQ's.
> 
> I think I figured the difference between 'None' (default) and 'Individual' out,
> but what does 'Sequence' and 'Keep' mean. Also, in `Individual' mode, is the camera
> origin coinciding with the origin of the object ?

Well, here's what the manual says:

----------
Normalization is a property that applies to each geom separately.  The
NORMALIZE GEOMETRY browser affects the normalization property
of target geom.  If the target geom is "World", it affects all geoms.

None
Do no normalization.

Individual
Normalize this geom to fit within a unit sphere.

Sequence
This resembles "Individual", except when an object is changing.  Then,
"Individual" tightly fits the bounding box around the object whenever it
changes and normalizes accordingly, while "Sequence" normalizes the
union of all variants of the object and normalizes accordingly.

Keep
This leaves the current normalization transform unchanged when the
object changes.  It may be useful to apply "Individual" or "Sequence"
normalization to the first version of a changing object to bring
it in view, then switch to "Keep".
----------

And now I'll interpret, since the manual can admittedly be a bit
terse:

As you've probably noticed, with "Individual" each object is
separately resized so that it fits in the default camera view. You
almost never want to use this if you have many objects that are
carefully positioned with respect to one another, since they'll all be
squashed on top of one another. It was intended for the pretty common
single-object, single-camera situation, and predates the "Lookat"
command (which would be a better way to do it). We get a lot of
questions about normalization, the fact that it's Individual instead
of None by default is a somewhat unfortunately backwards compatability 
choice. 

The idea with "Sequence" is that if you're looking at a changing
object, for instance using the Animator flipbook module, then you want
the object to say nicely framed in the window even if it grows. 

And with "Keep", the idea is that you might actually care about the
size changes of an object and want to understand how successive
versions differ in size. So you tell Geomview to leave the
normalization exactly the way it is at this moment.

For your purposes you definitely want "None". 

The base camera origin does indeed coincide with the object's. The
default camera transform puts the camera three units back in Z from
the object. Here's what you see when you dump out the default camera:

camera {
camtoworld transform {
             1             0             0             0
             0             1             0             0
             0             0             1             0
             0             0             3             1

}
        perspective 1  stereo 0
        fov 40
        frameaspect 1
        focus 3
        near 0.1
        far 100
}

> The problem I'm trying to tackle is the alignment of a virtual (geomview) camera with
> a real camera for computer assisted surgery. They are pointing at a virtual
> (CT reconstructed surface of a patient) and the real patient, respectively.
> Although I have the exact coordinate transformation, as obtained from a well-established
> camera calibration algorithm (Tsai), it doesn't work when I apply it in Geomview
> (using the Transformer module).

[Like Mark said - wow, that's cool!]

Can the problem be that in Transformer you said "Apply" (i.e. multiply
the current transform by the new one) instead of "Set" (i.e. throw
away the old transform, just use the new one). I presume you have
normalization set to "None", right?

If that's not it, can you be more specific about how exactly doesn't
work?

Hope this helps,
Tamara


 
Home | Overview | FAQ | Documentation | Support | Download | Mailing List
Windows? | Development | Bug Reporting | Contributing | Contact Us | Sponsors
 
site hosted by
SourceForge Logo