Re: What happend to Image?
- To: mathgroup at smc.vnet.net
- Subject: [mg130755] Re: What happend to Image?
- From: David Bailey <dave at removedbailey.co.uk>
- Date: Fri, 10 May 2013 00:31:06 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
- References: <20130508080952.52D386837@smc.vnet.net> <kmfksk$br3$1@smc.vnet.net>
On 09/05/2013 08:57, Matthias Odisio wrote: > Dear Alexei Boulbitch, > > On 5/8/13 3:09 AM, Alexei Boulbitch wrote: >> Dear Community, >> >> I just noticed that the function Image[ ] has unexpectedly changed since 9.0.0. >> >> Some time ago I have written a handy program working with the image. I have once published it here. Among others this program applied the operation >> >> ReplacePart[image,{4,2}?size] >> >> Where image was the image in use and size has been a parameter equal to a desired ImageSize option. This worked previously. Now it does not. >> >> I checked that the Image indeed has changed somehow. >> >> Let us load any image. For example, this: >> >> lena = Import["ExampleData/lena.tif"] >> >> One may check that this is indeed an image: >> >> Head[lena] >> >> Image >> >> Let us do like this: >> >> lena2= Image[lena, ImageSize -> 300] >> >> then the {{4,2}} part should memorize its size. >> >> One may look at its TreeForm (evaluate this and make sure that it has levels 0, 1, and 2), and {{4,2}} is indeed 300 >> >> TreeForm[lena2] >> >> However, if one would evaluate this >> >> Lena2[[4,2]] >> >> he get the message >> Part::partd: Part specification... is longer than depth of object\"" >> >> Not only {{4,2}}, but also other leaves of the tree are not acceccible. >> >> What happened to the Image? >> >> Alexei >> >> >> Alexei BOULBITCH, Dr., habil. >> IEE S.A. >> ZAE Weiergewan, >> 11, rue Edmond Reuter, >> L-5326 Contern, LUXEMBOURG >> >> Office phone : +352-2454-2566 >> Office fax: +352-2454-3566 >> mobile phone: +49 151 52 40 66 44 >> >> e-mail: alexei.boulbitch at iee.lu >> > > As of Mathematica 9, Image objects are atomic. > Wolfram Research has a strong commitment to and a track record of > preserving legacy across versions. Before Mathematica 9, it was never > documented, advised, or advertised to access or replace parts of an > Image object. All these operations should be performed using > documented functions like Image, ImageData, ImageQ, etc. > Image objects are atomic so it is easier for Wolfram Research to > expand the scope of image processing features while maintaining an > internal representation which is as efficient as possible. > > > As you found out, one can change the displayed size of an image using > Image: > > lena = Import["ExampleData/lena.tif"]; > newimg = Image[lena, ImageSize -> newsize] > Options[#, ImageSize] & /@ {lena, newimg} > > > > Matthias Odisio > Wolfram Research > As you say, there are obvious reasons to make certain objects atomic, though Image objects aren't yet quite atomic - try Import["ExampleData/lena.tif"] // Length or indeed Import["ExampleData/lena.tif"] // InputForm I also think it might help to be very upfront about such changes when a new version of Mathematica is released! David Bailey http://www.dbaileyconsultancy.co.uk
- References:
- What happend to Image?
- From: Alexei Boulbitch <Alexei.Boulbitch@iee.lu>
- What happend to Image?