How do I split my 200 pixel image up into 8 by 8?

1 view (last 30 days)
I have a 200 pixel image (lena) that i need to split into patches, each one 25 x 25. Is there a way I can do this without manually doing the following?
lena11 = lena(1:25,1:25);
lena12 = lena(1:25,25:49);
lena21 = lena(25:49,1:25);

Answers (3)

Azzi Abdelmalek
Azzi Abdelmalek on 29 Jul 2015
A=rand(200)
p=1:25:200
[ii,jj]=ndgrid(p,p)
out=arrayfun(@(x,y) A(x:x+24,y:y+24),ii,jj,'un',0)

Walter Roberson
Walter Roberson on 29 Jul 2015
lenacell = mat2cell(lena, 25 * ones(1,8), 25 * ones(1,8), size(lena,3));

Image Analyst
Image Analyst on 30 Jul 2015
It shows 2 ways - the mat2cell() way, and the indexing way like you showed.

Tags

Community Treasure Hunt

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

Start Hunting!