Hi, You would have to do the following: 1. Setup the transformation object with the appropriate coefficients: tform = skimage.transform.PolynomialTransform(…) 2. Warp the image: img_warped = skimage.transform.warp(img, tform, order=INTERP_ORDER) INTERP_ORDER equals the Interp argument in Poly_2D of IDL. Let us know if the documentation can be improved in any way. Regards, Johannes Am 28.09.2013 um 12:40 schrieb Stuart Mumford <stuart@mumford.me.uk>:
Hello,
While having a more thorough look at the transform module with respect to the image registration discussion, I thought it might be worth picking your brains on another solar based image processing issue we are having.
When images are collected from basically all telescopes, ground or space based, a large amount of processing is required to get them to the point where you can do science on them. This normally involves dark frame or noise removal, scaling etc. The last step is to compensate for the telescope pointing, which is generally a translate, rotate and rescale operation.
It is this last step that we are currently trying to port from the 'standard' IDL package into SunPy for the AIA instrument on NASAs SDO satellite.
A rotate, translate and rescale transform is not hard, the problem is we really need to replicate the same algorithm as used in IDL so that the processing of the data is the same irrespective of the language used to process it.
Without trying to show you all the gritty detail of the pipeline there is a function (for which the source code is available) called rot that is called to do the transform (here: http://www.astro.washington.edu/docs/idl/cgi-bin/getpro/library32.html?ROT) this function however calls a closed source routine called poly_2D which is described here: http://www.exelisvis.com/docs/POLY_2D.html
To my untrained eye this looks a little like http://scikit-image.org/docs/dev/api/skimage.transform.html#polynomialtransf... ? However for polynomial transform there is no discussion about interpolation like there is for poly_2D?
We have implemented a routine in SunPy which does a cubic affine transform in an attempt to replicate the behaviour but our testing so far is still a fair way off from the IDL implementation.
Any advice would be as always much appreciated.
Stuart
-- You received this message because you are subscribed to the Google Groups "scikit-image" group. To unsubscribe from this group and stop receiving emails from it, send an email to scikit-image+unsubscribe@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Hello, Thanks for your response. skimage.transform.warp calls scipy map_coordinates dosen't it? I believe that does not use the same interpolation method as the IDL routines. I wonder if that could be worked around though. Thanks again, I will look into it more. Stuart On 28 September 2013 13:28, Johannes Schönberger <jsch@demuc.de> wrote:
Hi,
You would have to do the following:
1. Setup the transformation object with the appropriate coefficients:
tform = skimage.transform.PolynomialTransform(…)
2. Warp the image:
img_warped = skimage.transform.warp(img, tform, order=INTERP_ORDER)
INTERP_ORDER equals the Interp argument in Poly_2D of IDL.
Let us know if the documentation can be improved in any way.
Regards, Johannes
Am 28.09.2013 um 12:40 schrieb Stuart Mumford <stuart@mumford.me.uk>:
Hello,
While having a more thorough look at the transform module with respect to the image registration discussion, I thought it might be worth picking your brains on another solar based image processing issue we are having.
When images are collected from basically all telescopes, ground or space based, a large amount of processing is required to get them to the point where you can do science on them. This normally involves dark frame or noise removal, scaling etc. The last step is to compensate for the telescope pointing, which is generally a translate, rotate and rescale operation.
It is this last step that we are currently trying to port from the 'standard' IDL package into SunPy for the AIA instrument on NASAs SDO satellite.
A rotate, translate and rescale transform is not hard, the problem is we really need to replicate the same algorithm as used in IDL so that the processing of the data is the same irrespective of the language used to process it.
Without trying to show you all the gritty detail of the pipeline there is a function (for which the source code is available) called rot that is called to do the transform (here: http://www.astro.washington.edu/docs/idl/cgi-bin/getpro/library32.html?ROT) this function however calls a closed source routine called poly_2D which is described here: http://www.exelisvis.com/docs/POLY_2D.html
To my untrained eye this looks a little like http://scikit-image.org/docs/dev/api/skimage.transform.html#polynomialtransf... However for polynomial transform there is no discussion about interpolation like there is for poly_2D?
We have implemented a routine in SunPy which does a cubic affine transform in an attempt to replicate the behaviour but our testing so far is still a fair way off from the IDL implementation.
Any advice would be as always much appreciated.
Stuart
-- You received this message because you are subscribed to the Google Groups "scikit-image" group. To unsubscribe from this group and stop receiving emails from it, send an email to scikit-image+unsubscribe@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "scikit-image" group. To unsubscribe from this group and stop receiving emails from it, send an email to scikit-image+unsubscribe@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
participants (2)
-
Johannes Schönberger
-
Stuart Mumford