Divide image into equal parts grid and save each part

Hi,
I have a several images with different height and width and I want to divide them into 9 equal parts (3x3 grid) and save each part into a separate file.
Is there a simple way to do it ? Is there a function that automatically apply the grid and split the image?
Thanks a lot in advance.
PS In case I am not clear I am looking to write something similar to the TileMage Image Splitter software (<http://tilemage.50webs.com/>) without GUI.

Answers (2)

You could use blockproc or a double for-loop with imwrite().

2 Comments

Blockproc looks as nice solution since my files have different height and width. I was looking on the help and tried to use block_struct.data (M-by-N, 3X3) but it does not work. Does the Blockproc automatically divide the image to 3x3?.If so I can I recall each block?
If you called blockproc as
blockproc(A,[3,3],fun)
then the blocks will be 3x3. I don't know what you mean by "recall each block".
I also don't think anyone understands why you are still determined to use blockproc when there is only 1 block in the image that you care about (see Sean's last comment).

Sign in to comment.

Matt J
Matt J on 24 Oct 2012
Edited: Matt J on 24 Oct 2012
You could also use MAT2TILES.
I think it's a bad idea to split the image into separate files, though. Why wouldn't it be better to keep them all in one file?

2 Comments

I just need the middle part and do not need the rest.
So then extract it
Icareabout = I(40:60,40:60,:) %extract a piece in the middle
If this is what you want then you should specify this in the question.

Sign in to comment.

Tags

Asked:

on 24 Oct 2012

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!