Benson Kenduiywo
2011-Aug-21 11:06 UTC
[R] How can I divide an image and randomly plot the segements
Hi! I would like to divide a 401 by 401 image into 20 equal blocks and then re-plot the image with the segments randomly distributed in it. How can I do this? ............. Regards, Kenduiywo Benson [[alternative HTML version deleted]]
Rolf Turner
2011-Aug-22 02:19 UTC
[R] How can I divide an image and randomly plot the segements
On 21/08/11 23:06, Benson Kenduiywo wrote:> Hi! I would like to divide a 401 by 401 image into 20 equal blocks and then re-plot the image with the segments randomly distributed in it. > How can I do this?For a 401 x 401 pixellation --- I don't know. If you use a 400 x 400 pixellation, then the class "im" in the spatstat package can be used via the attached function "shuffleIm()". The number of pixels in each dimension must be divisible by the number of blocks into which that dimension is subdivided. E.g. if you create your 20 blocks by making 4 divisions in the x-direction and 5 divisions in the y-direction then the number of pixels in the x-direction must be divisible by 4 and the number in the y-direction must be divisible by 5. Since 401 is prime it's kind of hard to do any kind of subdividing with a 401 x 401 image. Note that if X is an object of class "im" with a 401 x 401 pixellation, you can convert it to one with a 400 x 400 pixellation via X <- as.im(X,dimyx=400) This makes the pixel values of the new image equal to the values of the old image at the closest pixel centre. This shouldn't (???) cause too much distortion. Said he, optimistically. (In the one experiment that I did, the images were visually indistinguishable.) If you have a 400 x 400 pixel image, say "X", of class "im" then Y <- shuffleIm(X,nx=4,ny=5) gives you a new image in which the matrix of pixel values has been subdivided into a 5 x 4 array of 80 x 100 submatrices and these submatrices randomly shuffled. (Note that the rows of the matrix of pixel values in an object of class "im" correspond to the ***y*** direction and the columns correspond to the ***x*** direction. See fortune("conventions") for a comment. :-) ) Hope this does what you want. cheers, Rolf Turner -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: shuffleIm.R URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20110822/816cb0d7/attachment.pl>