Re: Cropping image parts through list of lists
- To: mathgroup at smc.vnet.net
- Subject: [mg130206] Re: Cropping image parts through list of lists
- From: "Barrie Stokes" <Barrie.Stokes at newcastle.edu.au>
- Date: Tue, 19 Mar 2013 01:52:12 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <khpcnr$mdb$1@smc.vnet.net>
How about: Map[ (s \[Function] Show[ ImageTake[img, \!\(\*SubscriptBox[\(s\), \(\(\[LeftDoubleBracket]\)\(\ \)\(1\)\(\ \[RightDoubleBracket]\)\)]\), \!\(\*SubscriptBox[\(s\), \(\(\[LeftDoubleBracket]\)\(\ \)\(2\)\(\ \[RightDoubleBracket]\)\)]\)], ImageSize -> \!\(\*SubscriptBox[\(s\), \(\(\[LeftDoubleBracket]\)\(\ \)\(3\)\(\ \[RightDoubleBracket]\)\)]\) ]), myList ] where img has been set to the image in question? Cheers Barrie >>> On 19/03/2013 at 3:06 pm, in message <20130319040601.46FC669D0 at smc.vnet.net>, Vince Virgilio <blueschi at gmail.com> wrote: > On Wednesday, March 13, 2013 4:18:03 AM UTC-4, TDMF HT wrote: >> Newbie with OOP way of thinking, so bear with me :) Thank you ! >> >> >> >> Given - list of lists: >> >> >> >> myList = { { {0,100},{50,100},{800,600} } , { > {{100,100},{150,100},{1024,768} } } >> >> >> >> Using the above list of lists, I want to crop two different parts from a > single image an resize the resulting partial image in the following way; >> >> >> >> Cropped image 1: >> >> cropXY: 0,100/50,100 >> >> resize: 800,600 >> >> >> >> Cropped image 2: >> >> cropXY: 100,100/150,100 >> >> resize: 1024,768 >> >> >> >> My OOP way of thinking tells me to iterate/loop over the outer and inner > lists. >> >> This doesnt seem to be the Mathematica way, so I spent the last couple of > hours messing around with >> >> DO/TAKE etc. and all image related functions. >> >> >> >> I dont seem to find the right way to sequentially go over the inner lists > and crop/resize the two parts from the single image. >> >> Id really appreciate a few tips on how to get this done. >> >> >> >> Thanks a bunch !!!! > > Maybe > > newImages = MapThread[ cropFunction, { img1, img2 }, { parm1, parm2 }]; > > where > > cropFunction[img_, { cropX_, cropY_, resize_}] := Module[{...}, newImage = > ...; newImage ]; > > does the work.