could you fix these codes?
1 view (last 30 days)
Show older comments
I=imread('filename');
a1=I(1:8,1:8);
a2=I(1:8,9:16);
a3=I(1:8,17:24);
a4=I(1:8,25:32);
b1=I(9:16,1:8);
b2=I(9:16,9:16);
b3=I(9:16,17:24);
b4=I(9:16,25:32);
c1=I(17:24,1:8);
c2=I(17:24,9:16);
c3=I(17:24,17:24);
c4=I(17:24,25:32);
d1=I(25:32,1:8);
d2=I(25:32,9:16);
d3=I(25:32,17:24);
d4=I(25:32,25:32);
could you tell me how to make it short? Thank you
0 Comments
Accepted Answer
Jan
on 14 May 2013
Edited: Jan
on 14 May 2013
Don't do this.
Hiding the index in the name of a variable is a bad programming pattern. It is much more efficient to use indices as indices:
img = reshape(a(1:32, 1:32), 8, 4, 8, 4);
img = permute(img, [1,3,2,4]);
Now you have img(:, :, 1, 1) instead of a1.
This is much faster, needs less memory, and allows to expand the method for millions of tiles easily.
3 Comments
Image Analyst
on 16 May 2013
You may not even need to do that. It's possible that you do not need to even store the tiles at all. Do you? Why do these tiles need to be stored rather than just operated on and thrown away (reused)? Just operate on one tile at a time if you can - why store forever?
More Answers (2)
Iman Ansari
on 14 May 2013
Edited: Iman Ansari
on 14 May 2013
Hi. Use cell array:
I=imread('moon.tif');
C=mat2cell(I(1:32,1:32),8*ones(1,4),8*ones(1,4));
imshow(C{5},'InitialMagnification','fit')
C{5} or C{1,2} is a2 in your code.
3 Comments
Iman Ansari
on 14 May 2013
It's not good having variable named a1,a2,..., see this:
I=imread('moon.tif');
C=mat2cell(I(1:32,1:32),8*ones(1,4),8*ones(1,4));
imshow(C{5},'InitialMagnification','fit')
C in this code is:
C={a1,a2,a3,a4;b1,b2,b3,b4;c1,c2,c3,c4;d1,d2,d3,d4}
and for s:
s=[C{1,1} C{2,1} C{3,2} C{4,3};C{1,3} C{2,2} C{3,3} C{4,4};...]
David Sanchez
on 14 May 2013
You can try as well something like this
I=imread(your_32x32_image_name);
division = 8; % set according to yuor needs
L = size(I,1)/division;
subI = cell( L,L );
for row=1:L
for col=1:L
subI{row,col} = I( (row:row*division),(col:(col*division)) );
end
end
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!