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