easily sub dividing image into blocks

1 visualización (últimos 30 días)
mahesh chathuranga
mahesh chathuranga el 10 de Sept. de 2013
Respondida: Tejashree Ladhake el 29 de Nov. de 2013
this is my programme
[m n]=size(I);_(example image size is 256*256)_ c=mat2cell(I,[4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4],[4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4]); this is difficult and i want to sub divide the any image into (m/4)*(n/4) blocks.how can i do this easily?
  3 comentarios
Image Analyst
Image Analyst el 12 de Sept. de 2013
FYI: note the long arrays of 4's can be replaced by the shorter expression: 4*ones(1,m/4)
mahesh chathuranga
mahesh chathuranga el 13 de Sept. de 2013
thank you

Iniciar sesión para comentar.

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 10 de Sept. de 2013
Editada: Azzi Abdelmalek el 10 de Sept. de 2013
im=rand(256);
[n,m]=size(im);
p=4
aa=1:p:n
bb=1:p:m
[ii,jj]=ndgrid(aa,bb)
out=arrayfun(@(x,y) im(x:x+p-1,y:y+p-1),ii,jj,'un',0)
  3 comentarios
mahesh chathuranga
mahesh chathuranga el 12 de Sept. de 2013
thank you very much. but sir i want to do this with mat2cellfunction
Jan
Jan el 12 de Sept. de 2013
There is nothing magic in MAT2CELL. You can simply use a loop directly, see [EDITED] in my answer.

Iniciar sesión para comentar.

Más respuestas (2)

Jan
Jan el 10 de Sept. de 2013
Editada: Jan el 12 de Sept. de 2013
Img = rand(768, 1024);
[m, n] = size(Img);
Blocks = permute(reshape(Img, [4, m/4, 4, n/4]), [1, 3, 2, 4]);
Now the block [x,y] can be accessed as
Block(:, :, x, y)
[EDITED] And to create a cell:
Img = rand(768, 1024);
[m, n] = size(Img);
m4 = m / 4;
n4 = n / 4;
Blocks = permute(reshape(Img, [4, m4, 4, n4]), [1, 3, 2, 4]);
C = cell(m4, n4)
for in = 1:n4
for im = 1:m4
C{im, in} = Blocks(:, :, im, in);
end
end
  3 comentarios
mahesh chathuranga
mahesh chathuranga el 13 de Sept. de 2013
thanks
Alessandro Masullo
Alessandro Masullo el 30 de Mayo de 2018

This is the smartest solution that I've ever seen.

It's just pure beauty. Fantastic, I love it!

Iniciar sesión para comentar.


Tejashree Ladhake
Tejashree Ladhake el 29 de Nov. de 2013
yes, it works! thank you

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by