Spliting an Image into smaller images of NxN

19 views (last 30 days)
I have an image of 1000x1000 pixels, I want to split the image into NxN size blocks and save them into a cell and export them into .jpe files.

Accepted Answer

Naqi on 5 Nov 2011
I tried using blockproc(), but could not save block_struct.data into a matrix. I want to be able to export the images into .jpg files.
  1 Comment
Walter Roberson
Walter Roberson on 5 Nov 2011
You do not need to save the data in to a matrix: just write out the image directly.
imwrite(block_struct.data, FILENAME, 'jpg')
Now the only question becomes one of how to determine what filename to use.

Sign in to comment.

More Answers (2)

Image Analyst
Image Analyst on 5 Nov 2011
Just do this:
smallGrayImage = fullSizeGrayImage(row1:row2, col1:col2);
If it's color you can do this:
smallRGBImage = fullSizeRGBImage(row1:row2, col1:col2,:);
You'll need to set up row1, row2, col1, and col2 for each subimage with this method, but it's pretty straightforward.

Walter Roberson
Walter Roberson on 5 Nov 2011
mat2cell() or blkproc() or blockproc().
You will have to decide what you want to do when N does not evenly divide 1000, leaving you with partial images.

Community Treasure Hunt

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

Start Hunting!