On Friday, May 4, 2012 3:28:11 AM UTC-7, JUN wrote:
> On Thursday, May 3, 2012 7:25:40 PM UTC-7, Julian Francis wrote:
> > Dear all,
> >
> > I have a binary image in which I'd like to use the mouse to draw
> > (freehand) on top of the image, and use this in Mathematica.
> >
> > Presently, I can import the image into a painting program, use its
> > sketching facilities, then cut and paste into Mathematica. I can
> > extract the matrix if I wish by using ImageData.
> >
> > Is there a way of drawing on the image directly in Mathematica to save
> > me cutting and pasting between programs?
> >
> > I've worked out how to create a graphic and draw into it using the
> > Mathematica graphics drwaing tools, but my problem is either the
> > graphic is far too large, or if I shrink it down
> > (I want to work on matrices 16x16), the resulting picture is far too
> > small. I want to draw into a matrix 16x16, but it be large enough for
> > me to see easily.
> >
> > Thanks,
> > Julian.
>
> The image has to be put into a Graphics box, and you can do that using the Inset command:
>
> im = RandomImage[1, {16, 16}];
> Graphics[Inset[im, Automatic, Automatic, Scaled[1]]]
>
> Here I've just used a random image and scaled it to fill the default Graphics width. Now you can double-click on the graphic and press Control-t to get the drawing tools, and they should work as you want.
>
> I think what you want to do after you're done editing is to convert the result back to an image. To do that, you could type:
>
> Rasterize[ , "Image", ImageSize -> 16]
>
> and copy the edited graphic from the previous cell back into the empty space I left in the Rasterize command. The result is again an image of the or iginal dimensions.
>
> Jens
Reading this again, I should clarify that you can also edit the image directly if you magnify it by dragging its outline manually, or doing Magnify[im,20] ... the Inset method above isn't the only way, I guess it's just the first thing that came to mind when you mentioned your own approach.