From: John H. <jdh...@ac...> - 2004-04-06 16:12:53
|
>>>>> "Dominique" == Dominique Orban <Dom...@po...> writes: Dominique> Many thanks for your reply and suggestions. I see what Dominique> is happening. Nearest neighbor interpolation has the Dominique> colors right, but i was trying to get "more Dominique> interpolation". I guess looking at the great pictures Dominique> that imshow() produces i was hoping for a result such Dominique> as that of Dominique> X = rand(10) pcolor( X ) shading 'interp' As far as I recall, matlab's pcolor also loses an edge due to interpolation. Perhaps the main difference is that in matlab, the axes limits are set by default so that you don't see it. I remember being surprised by this many moons ago the first time I used pcolor in matlab. Dominique> in Matlab. The Matplotlib picture is just as good Dominique> really, except for the border. Why are the other Dominique> borders not white as well? Is the interpolation Dominique> "directional"? Why aren't pixels on the border only Dominique> interpolated with their neighbors inside the image, and Dominique> not those outside (these have less neighbors than Dominique> pixels in the middle)? I'll have to think about this some more. There is also something funny about how the tick labeling currently works for images, because the X[0,0] coord is upper left but is labeled as 0,10. Perhaps ticks should be off be default, or labeled with the y axis descending. Those who have opinions please weigh in. BTW, the developer of agg, Maxim, is fairly responsive, so if you want to pursue this issue after reading some of the code I point to below on the agg mailing list http://lists.sourceforge.net/lists/listinfo/vector-agg-general Maxim can probably provide some additional guidance. Dominique> Perhaps you can point me to the part of the code (c++ i Dominique> assume) which does the interpolation? Should i grab the Dominique> CVS repository for that? Then maybe i can play around Dominique> and see if i can achieve the effect i am looking for. The code is available in the matplotlib src distribution. The module is src/_image.cpp, which uses agg for image manipulation; see the function Image_resize. All the agg code is also in the matplotlib src distro, eg, agg2/include. agg2 doesn't have a lot of documentation - hence I spend a lot of time reading src files, eg agg_conv_transform.h agg_span_image_filter_rgb24.h agg_span_image_filter_rgba32.h agg_span_interpolator_linear.h The latest agg snapshot it http://www.antigrain.com/agg2.tar.gz which has lots of examples in the examples dir. Agg can do a lot with images, some of which would be nice to add to the matplotlib interface.... JDH |