Could I ask you to test the following branch:
https://github.com/geotools/geotools/tree/matrix
We are switching to a different matrix implementation and I have already
noticed a difference in accuracy. I would really appreciate your testing
and input on this change as it is one I am concerned about.
For more information see
https://github.com/geotools/geotools/wiki/Change-from-vecmath-to-EJML
--
Jody Garnett
On 7 April 2015 at 14:46, Benjamin Ducke <bendu...@fastmail.fm> wrote:
> Dear All --
>
> First of all: This is my first posting to this
> list, and I would like to take the opportunity
> and say a big "Thank You" to the developers of
> GeoTools! Your library has allowed me to do some
> immensely productive Java GIS coding.
>
> But now I've run into a dead end (or so it seems).
>
> I am trying to use GeoTools' "ProjectiveTransform(Builder)"
> classes to transform the pixel coordinates of images
> to real-world coordinates. I made some tests with
> "AffineTransform" first and this worked fine, but
> the images have a perspective distortion and a
> simple affine transformation won't suffice.
>
> Then I tested "ProjectiveTransform" with some synthetic
> data, and the results looked promising. However, with
> real data, the transformation seems to go out of control.
>
> Below is a list of six points. On line "Transform",
> you will find the image coordinates and the world
> coordinates to which they are _supposed_ to map.
>
> Under "World", you find the _actual_ mappings and the
> difference (in map units, meters). As you can see,
> the two are way off, with a maximum distance of
> 278 meters. Also note the huge RMS:
>
> PROJECTIVE FORWARD RESULTS (IMAGE TO WORLD):
> RMS = 134.46109310005252
> Pt.: 1
> Transform: 138.2/385.3 -> 513356.295/280624.993.
> World X = 513393.74146133795 (37.446461337967776).
> World Y = 280638.165346099 (13.172346098988783).
> Dist = 39.695694583763874
> Pt.: 2
> Transform: 1267.3/415.3 -> 513357.71/280624.795.
> World X = 513482.11524025456 (124.40524025453487).
> World Y = 280597.9072626728 (-26.8877373271971).
> Dist = 127.2777051229511
> Pt.: 3
> Transform: 2516.7/509.4 -> 513359.273/280624.553.
> World X = 513583.4260212551 (224.1530212551006).
> World Y = 280556.36530408286 (-68.18769591714954).
> Dist = 234.294982473546
> Pt.: 4
> Transform: 2517.4/1589.3 -> 513359.071/280623.21.
> World X = 513637.1007852404 (278.0297852404183).
> World Y = 280607.33684666886 (-15.873153331165668).
> Dist = 278.48252813687935
> Pt.: 5
> Transform: 1510.2/1744.6 -> 513357.854/280623.122.
> World X = 513573.2481027579 (215.39410275791306).
> World Y = 280647.9796511657 (24.857651165744755).
> Dist = 216.82371255092065
> Pt.: 6
> Transform: 237.0/1685.9 -> 513356.421/280623.314.
> World X = 513480.8793013462 (124.4583013462252).
> World Y = 280688.37563165755 (65.06163165753242).
> Dist = 140.43818813958055
>
> Now, I have tested the same data with QGIS and
> its projective referencing mode and it manages
> to hit the target spot-on. So the problem is not
> that the image is too distorted for a projective
> transform. The RMS should be at most a few cm.
>
> Also, if I scale the pixel coordinates to bring
> them roughly into the same range as the real-world
> coordinates (say multiply by one million), then
> I get substantially better results (however, results
> are still off the mark by several meters). This
> leads me to suspect that there is a precision problem
> involved here.
>
> I use a "ProjectiveTransformBuilder" with a list of
> "MapPosition" to build the "ProjectiveTransform". I
> have tried toying with
> "MappedPosition.setAccuracy(double)", but no luck
> (I also don't understand how to set the double
> parameter).
>
> I have tested GeoTools 11 through 13 and am getting
> the same results with each.
>
> If anyone could point me into the right direction
> for solving this problem, I would be very grateful.
> I will gladly elaborate and also send sample data
> via PM if anyone wants to take a closer look.
>
> Thanks and best regards,
>
> Ben
>
> --
> Dr. Benjamin Ducke
> {*} Geospatial Consultant
> {*} GIS Developer
>
> Spatial technology for the masses, not the classes:
> experience free and open source GIS at http://gvsigce.org
>
>
> ------------------------------------------------------------------------------
> BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
> Develop your own process in accordance with the BPMN 2 standard
> Learn Process modeling best practices with Bonita BPM through live
> exercises
> http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual-
> event?utm_
> source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
> _______________________________________________
> GeoTools-GT2-Users mailing list
> GeoTools-GT2-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users