[Mapserver-users] rubber sheeting

Jan Hartmann jhart at frw.uva.nl
Sat Jul 19 06:51:48 EDT 2003


Yes, that is the answer. I hadn't realized that it was done by 
triangulation and that morphing is just another name for rubber 
sheeting. Both are very well known technologies, I just hadn't made the 
link to GIS terminology. Gives me quite a lot of good technical 
pointers. If anyone knows free software or source code in these two 
areas that could be easily transferred to GIS, please let me know. I 
could try to implement it in GRASS or GDAL

Thanks Franck, Norman

Jan

Franck Martin wrote:
> 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 <mailto:franck at sopac.org>>
> SOPAC
> 
> 




More information about the mapserver-users mailing list