[Mapserver-users] rubber sheeting

Franck Martin franck at sopac.org
Fri Jul 18 18:19:26 EDT 2003


--=-XfVWHyaxm75YcV1ilx1u
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Many raster software offer polynomial rectification which highly
inadequate in most of cases today. Rubber Sheeting is the answer and the
correct term in GIS, and as described below it is based on a
triangulation of the map to be modified..

The difference between polynomial and rubber sheeting is that rubber
sheeting needs more ground control points.

GRASS does not offer rubber sheeting, it is a pity as I don't know any
free software that offers it.

I guess the algorithm for rubber sheeting is well known or known also
under the name morphing.. A google search should give some results
here...

Cheers



On Sat, 2003-07-19 at 04:43, Norman Vine wrote:

> Jan Hartmann writes:
> > 
> > 
> > The problem is that AFAIK all these rectifying routines are computed 
> > globally. You can use of course a higher order polynomial, but even so 
> > the placement of every control point will affect the whole map. 
> > Moreover, you can't use very high polynomials and too many control 
> > points. What I am looking for is something that will do *local* 
> > transformations based on nearby control points, and stretch the results 
> > together some way. Those old maps are generally correct on small 
> > subregions, but the subregions fit in no way together. There is 
> > certainly no numerical soluton for it.
> 
> Good question, 
> I don't think I have ever thought about 'locally adaptive' rubber sheeting.
> 
> Probably easiest to do by separating out the U and V correction
> 
> A 'simplistic' method might be to make two countour 'grids', for testing 
> purposes you could use simple triangulated surfaces, where 'Z'  was the 
> displacement in X or Y respectively of each control point.  Then by 
> queryng the grids by the original {X,Y} you would get a {U,V} offset by 
> interpolation, that can be used to determine the new coordinates.  
> One trick here is that the new image wants to be constructed by triangles
> and not points, think texture mapping
> 
> < tough todo with ASCII >
> *  *   *   *
> | \ | \ | \ |
> *  *  *   *
> | \ | \ | \ |
> *  *   *   *
> 
> HTH
> 
> Norman
> _______________________________________________



-- 
Franck Martin <franck at sopac.org>
SOPAC

--=-XfVWHyaxm75YcV1ilx1u
Content-Type: text/html; charset=utf-8

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/1.1.8">
</HEAD>
<BODY>
Many raster software offer polynomial rectification which highly inadequate in most of cases today. Rubber Sheeting is the answer and the correct term in GIS, and as described below it is based on a triangulation of the map to be modified..<BR>
<BR>
The difference between polynomial and rubber sheeting is that rubber sheeting needs more ground control points.<BR>
<BR>
GRASS does not offer rubber sheeting, it is a pity as I don't know any free software that offers it.<BR>
<BR>
I guess the algorithm for rubber sheeting is well known or known also under the name morphing.. A google search should give some results here...<BR>
<BR>
Cheers<BR>
<BR>
<BR>
<BR>
On Sat, 2003-07-19 at 04:43, Norman Vine wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE><FONT COLOR="#737373" SIZE="3"><I>Jan Hartmann writes:
&gt; 
&gt; 
&gt; The problem is that AFAIK all these rectifying routines are computed 
&gt; globally. You can use of course a higher order polynomial, but even so 
&gt; the placement of every control point will affect the whole map. 
&gt; Moreover, you can't use very high polynomials and too many control 
&gt; points. What I am looking for is something that will do *local* 
&gt; transformations based on nearby control points, and stretch the results 
&gt; together some way. Those old maps are generally correct on small 
&gt; subregions, but the subregions fit in no way together. There is 
&gt; certainly no numerical soluton for it.

Good question, 
I don't think I have ever thought about 'locally adaptive' rubber sheeting.

Probably easiest to do by separating out the U and V correction

A 'simplistic' method might be to make two countour 'grids', for testing 
purposes you could use simple triangulated surfaces, where 'Z'  was the 
displacement in X or Y respectively of each control point.  Then by 
queryng the grids by the original {X,Y} you would get a {U,V} offset by 
interpolation, that can be used to determine the new coordinates.  
One trick here is that the new image wants to be constructed by triangles
and not points, think texture mapping

&lt; tough todo with ASCII &gt;
*  *   *   *
| \ | \ | \ |
*  *  *   *
| \ | \ | \ |
*  *   *   *

HTH

Norman
_______________________________________________</I></FONT></PRE>
</BLOCKQUOTE>
<BR>
<PRE><TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
-- <BR>
Franck Martin &lt;<A HREF="mailto:franck at sopac.org">franck at sopac.org</A>&gt;<BR>
SOPAC
</TD>
</TR>
</TABLE>
</PRE>
</BODY>
</HTML>

--=-XfVWHyaxm75YcV1ilx1u--



More information about the mapserver-users mailing list