Registration of 3D shells? [message #30756] |
Wed, 15 May 2002 09:22  |
Dick Jackson
Messages: 347 Registered: August 1998
|
Senior Member |
|
|
Hi all,
I'd like to know if anyone has any experience to share on registration of 3D
shells. That is, if you have two IDLgrPolygons (or Surfaces) that are
'snapshots' of the surface of an object, which:
- may not have perfect overlap (unmatching data on some edges of each
object),
- need some rigid-body transformation (translation or rotation in 3D)
to bring them together,
- may differ slightly in the actual object's detail,
find the optimal transform to bring them together.
One complication is that the datasets are large (1024x1024 points per
surface).
Experiments with Constrained_Min and Craig Markwardt's TNMIN have been
promising with small datasets, I wonder if anyone has tackled this with
bigger ones in IDL.
Any help is appreciated!
Cheers,
--
-Dick
Dick Jackson / dick@d-jackson.com
D-Jackson Software Consulting / http://www.d-jackson.com
Calgary, Alberta, Canada / +1-403-242-7398 / Fax: 241-7392
|
|
|
Re: Registration of 3D shells? [message #30794 is a reply to message #30756] |
Fri, 17 May 2002 07:47  |
Dick Jackson
Messages: 347 Registered: August 1998
|
Senior Member |
|
|
Thanks, that's the direction I'm looking at with Constrained_Min and TNMIN.
Choosing a subset of points might keep it tractable.
"Anne Martel" <anne.martel@nottingham.ac.uk> wrote in message
news:a4bf6780.0205170135.37e51c32@posting.google.com...
> The registration of 2 surfaces is quite a common problem in medical
> image registration. One sucessful approach is that proposed by Charles
> Pelizzari (JCAT, 1989, 13:20-26) where you try to fit one surface on
> top of the other like fitting a hat on a head. The most efficient way
> to do this is to generate a distance map (sometimes called a chamfer
> map) using one surface and then rotate the other surface so that the
> distance between any point on the rotated surface and the stationary
> surface is minimised. You usually only need to calculate the distance
> for a subset of the surface points. The only problem with the
> algorithm is that it can converge to a local minimum (like putting on
> the hat back to front)
>
> "Dick Jackson" <dick@d-jackson.com> wrote in message
news:<3cQE8.82791$GG6.7187426@news3.calgary.shaw.ca>...
>> "Craig Markwardt" <craigmnet@cow.physics.wisc.edu> wrote in message
>> news:onptzxkpqu.fsf@cow.physics.wisc.edu...
>>>
>>> "Dick Jackson" <dick@d-jackson.com> writes:
>>>
>>>> Hi all,
>>>>
>>>> I'd like to know if anyone has any experience to share on
registration
>> of 3D
>>>> shells. That is, if you have two IDLgrPolygons (or Surfaces) that
are
>>>> 'snapshots' of the surface of an object, which:
>>> ...
>>>
>>> Hi Dick--
>>>
>>> Are these 2d or 3d data sets? When you say surface that could be an
>>> isosurface within a 3d data volume, or simple the surface z = f(x,y)
>>> of a 2d data set.
>>>
>>> I think registration of 2d data sets is commonly done with a cross
>>> correlation.
>>
>> Yes, they are generally like a z = f(x,y) surface, in that a surface
doesn't
>> wrap around behind itself. With some datasets we have regular (x,y),
>> sometimes not.
>>
>> As I understand it, cross correlation could find the best x-y
translation
>> with regular (x,y), but we have rotation and translation in 3D to
contend
>> with. My solution will need 6 parameters, can cross correlation help out
>> here?
>>
>> Thanks for your interest!
>>
>> Cheers,
|
|
|
Re: Registration of 3D shells? [message #30796 is a reply to message #30756] |
Fri, 17 May 2002 02:35  |
anne.martel
Messages: 6 Registered: April 2002
|
Junior Member |
|
|
The registration of 2 surfaces is quite a common problem in medical
image registration. One sucessful approach is that proposed by Charles
Pelizzari (JCAT, 1989, 13:20-26) where you try to fit one surface on
top of the other like fitting a hat on a head. The most efficient way
to do this is to generate a distance map (sometimes called a chamfer
map) using one surface and then rotate the other surface so that the
distance between any point on the rotated surface and the stationary
surface is minimised. You usually only need to calculate the distance
for a subset of the surface points. The only problem with the
algorithm is that it can converge to a local minimum (like putting on
the hat back to front)
Anne
"Dick Jackson" <dick@d-jackson.com> wrote in message news:<3cQE8.82791$GG6.7187426@news3.calgary.shaw.ca>...
> "Craig Markwardt" <craigmnet@cow.physics.wisc.edu> wrote in message
> news:onptzxkpqu.fsf@cow.physics.wisc.edu...
>>
>> "Dick Jackson" <dick@d-jackson.com> writes:
>>
>>> Hi all,
>>>
>>> I'd like to know if anyone has any experience to share on registration
> of 3D
>>> shells. That is, if you have two IDLgrPolygons (or Surfaces) that are
>>> 'snapshots' of the surface of an object, which:
>> ...
>>
>> Hi Dick--
>>
>> Are these 2d or 3d data sets? When you say surface that could be an
>> isosurface within a 3d data volume, or simple the surface z = f(x,y)
>> of a 2d data set.
>>
>> I think registration of 2d data sets is commonly done with a cross
>> correlation.
>
> Yes, they are generally like a z = f(x,y) surface, in that a surface doesn't
> wrap around behind itself. With some datasets we have regular (x,y),
> sometimes not.
>
> As I understand it, cross correlation could find the best x-y translation
> with regular (x,y), but we have rotation and translation in 3D to contend
> with. My solution will need 6 parameters, can cross correlation help out
> here?
>
> Thanks for your interest!
>
> Cheers,
|
|
|