ImageTaker[img, {{x1,y1},{x2,y2}} ] useful toolfunction
- To: mathgroup at smc.vnet.net
- Subject: [mg130244] ImageTaker[img, {{x1,y1},{x2,y2}} ] useful toolfunction
- From: roby <roby.nowak at gmail.com>
- Date: Thu, 28 Mar 2013 11:54:38 -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
Dear Mathematica user sometimes it would be helpful to use the coordinate picker tool of the 2D Drawing toolbox to be able to extract a subimage of an image displayed in the frontend. The problem here ist that the picker tool gives you x,y coordinates with y positive direction growing from bottom to top. Whereas ImageTake first needs row indices growing top to bottom followed by column indices. The following function provides most of what is needed: ImageTaker[img_, c_] := ImageTake[img, Sequence @@ ({First@ImageDimensions@img, 0} + (c // Transpose // Sort /@ # & // MapAt[-Reverse@# &, #, 2] & // Reverse))] ImageTaker accepts 2 paramters the first one is the source image, the second is the x,y coordinate pair specifying the subimage. So the procedure is the following: pick twice inside the source image using the coordinate picker tool, copy the coordinates by pressing CTRL-C, paste the coordinates CTRL-V to the function above as second parameter, feed the source imgage as first parameter e.g. by referencing an output cell containing the image by %nnn and evaluate it. this gives you something like this: ImageTaker[%nnn,{{x1,y1},{x2,y2}}] which will evaluate and display the desired subimage. Robert